类 AbstractSocialAuthenticationHandler
java.lang.Object
cn.herodotus.stirrup.core.identity.handler.AbstractSocialAuthenticationHandler
- 所有已实现的接口:
SocialAuthenticationHandler
public abstract class AbstractSocialAuthenticationHandler
extends Object
implements SocialAuthenticationHandler
Description: 抽象的社交登录处理器
实现社交登录和手机号码登录的主要流程逻辑
- 作者:
- : gengwei.zheng
- Date:
- : 2021/5/16 17:38
-
构造器概要
构造器 -
方法概要
修饰符和类型方法说明abstract voidadditionalRegisterOperation(HerodotusUser HerodotusUser, SocialUserDetails socialUserDetails) 随着系统业务复杂度的增加,系统用户注册成功之后,也许还会进行其它额外的操作,来补充新用户的相关信息。abstract voidadditionalSignInOperation(HerodotusUser HerodotusUser, SocialUserDetails newSocialUserDetails, SocialUserDetails oldSocialUserDetails) 社交用户登录后,附加的其它操作authentication(String source, AccessPrincipal accessPrincipal) 社交登录abstract voidbinding(String userId, SocialUserDetails socialUserDetails) 系统用户与社交用户绑定操作abstract SocialUserDetailsidentity(String source, AccessPrincipal accessPrincipal) 第三方登录以及手机号码验证的认证,认证成功返回对应系统中的返回信息abstract SocialUserDetailsisUserExist(SocialUserDetails socialUserDetails) 根据社交登录返回的用户信息,查询系统中是否有响应的信息abstract HerodotusUserregister(SocialUserDetails socialUserDetails) 系统用户注册abstract HerodotusUsersignIn(SocialUserDetails socialUserDetails) 系统用户注册
-
构造器详细资料
-
AbstractSocialAuthenticationHandler
public AbstractSocialAuthenticationHandler()
-
-
方法详细资料
-
identity
public abstract SocialUserDetails identity(String source, AccessPrincipal accessPrincipal) throws AccessIdentityVerificationFailedException 第三方登录以及手机号码验证的认证,认证成功返回对应系统中的返回信息- 参数:
source- 社交登录提供者分类accessPrincipal- 社交登录所需要的参数信息- 返回:
- 认证成功后返回的信息
SocialUserDetails - 抛出:
AccessIdentityVerificationFailedException- 社交登录认证出错
-
isUserExist
根据社交登录返回的用户信息,查询系统中是否有响应的信息- 参数:
socialUserDetails- 第三方系统或者手机号码认证成功后返回的信息SocialUserDetails- 返回:
- 系统UserDetails
SocialUserDetails
-
register
public abstract HerodotusUser register(SocialUserDetails socialUserDetails) throws UsernameAlreadyExistsException 系统用户注册根据社交用户提供的一些信息,进行系统用户的注册
- 参数:
socialUserDetails-SocialUserDetails- 返回:
- 系统用户
HerodotusUser - 抛出:
UsernameAlreadyExistsException- 用户名已经存在
-
binding
public abstract void binding(String userId, SocialUserDetails socialUserDetails) throws SocialCredentialsUserBindingFailedException 系统用户与社交用户绑定操作- 参数:
userId- 系统用户的ID。socialUserDetails- 第三方系统或者手机号码认证成功后返回的信息SocialUserDetails- 抛出:
SocialCredentialsUserBindingFailedException- 绑定出现错误Exception
-
additionalRegisterOperation
public abstract void additionalRegisterOperation(HerodotusUser HerodotusUser, SocialUserDetails socialUserDetails) 随着系统业务复杂度的增加,系统用户注册成功之后,也许还会进行其它额外的操作,来补充新用户的相关信息。 所以提供一个方法,方便进行新用户其它业务信息的操作。建议采用是异步操作。- 参数:
HerodotusUser- 系统用户信息HerodotusUsersocialUserDetails- 社交登录过程中,第三方系统返回的新信息
-
signIn
系统用户注册根据社交用户提供的一些信息,进行系统用户的注册
- 参数:
socialUserDetails-SocialUserDetails- 返回:
- 系统用户
HerodotusUser
-
additionalSignInOperation
public abstract void additionalSignInOperation(HerodotusUser HerodotusUser, SocialUserDetails newSocialUserDetails, SocialUserDetails oldSocialUserDetails) 社交用户登录后,附加的其它操作- 参数:
HerodotusUser- 系统用户信息HerodotusUsernewSocialUserDetails- 社交登录过程中,第三方系统返回的新信息SocialUserDetailsoldSocialUserDetails- 系统中已经存在的社交用户信息
-
authentication
public HerodotusUser authentication(String source, AccessPrincipal accessPrincipal) throws org.springframework.security.core.AuthenticationException 社交登录1. 首先在第三方系统进行认证,或者手机号码、扫码认证。返回认证后的信息 2. 根据认证返回的信息,在系统中查询是否有对应的用户信息。 2.1. 如果有对应的信息,根据需要更新社交用户的信息,然后返回系统用户信息,进行登录。 2.2. 如果没有对应信息,就先进行用户的注册,然后进行社交用户和系统用户的绑定。
- 指定者:
authentication在接口中SocialAuthenticationHandler- 参数:
source- 社交登录提供者分类accessPrincipal- 社交登录所需要的信息- 返回:
- 系统用户
- 抛出:
org.springframework.security.core.AuthenticationException-AuthenticationException认证错误
-