SmsAuthenticationToken.kt

package io.github.lishangbu.avalon.oauth2.authorizationserver.authentication

import org.springframework.security.authentication.UsernamePasswordAuthenticationToken
import org.springframework.security.core.GrantedAuthority

/**
 * 短信验证码登录令牌
 *
 * 在认证前承载手机号与验证码,在认证后承载已登录用户与权限
 */
class SmsAuthenticationToken : UsernamePasswordAuthenticationToken {
    /** 使用手机号与验证码创建未认证令牌 */
    constructor(phoneNumber: String, smsCode: String) : super(phoneNumber, smsCode)

    /** 使用认证结果与权限创建已认证令牌 */
    constructor(
        principal: Any?,
        credentials: Any?,
        authorities: Collection<GrantedAuthority>,
    ) : super(principal ?: "", credentials ?: "", authorities)
}