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