protected boolean smsToken(final RequestContext requestContext,
                            final PasswordlessUserAccount user,
                            final PasswordlessAuthenticationToken token) {
        if (communicationsManager.isSmsSenderDefined() && StringUtils.isNotBlank(user.getPhone())) {
            val passwordlessProperties = casProperties.getAuthn().getPasswordless();
            FunctionUtils.doUnchecked(() -> {
                val smsProperties = passwordlessProperties.getTokens().getSms();
                val text = SmsBodyBuilder.builder()
                    .properties(smsProperties)
                    .parameters(Map.of("token", token.getToken()))
                    .build()
                    .get();
                val smsRequest = SmsRequest
                    .builder()
                    .from(smsProperties.getFrom())
                    .to(List.of(user.getPhone()))
                    .text(text)
                    .build();
                return communicationsManager.sms(smsRequest);
            });
        }
        return true;
    }
This is {@link CreatePasswordlessAuthenticationTokenAction}.

@author Misagh Moayyed
@since 7.1.0
support/cas-server-support-passwordless-webflow/src/main/java/org/apereo/cas/web/flow/CreatePasswordlessAuthenticationTokenAction.java