# 集成三方oauth2授权码模式登录

默认实现

后端配置:

afc.sso.oauth2.enable=true  #开启oauth2-sso开关,默认为false
afc.sso.oauth2.authorize-url=http://localhost:1111/oauth/authorize  #授权地址
afc.sso.oauth2.token-url=http://localhost:1111/oauth/token #获取token地址
afc.sso.oauth2.client-id=xxx  #clientid
afc.sso.oauth2.client-secret=$2a$10$is2AxEqDRjwUNM2sezu.f.KpSg/DA.LetxckDjMUDS4XQeCRVWxE. #clientSecret
afc.sso.oauth2.redirect-url=http://localhost:28083/token #afcenter中获取授权码后的重定向地址
afc.sso.oauth2.login-url=http://localhost:28083/#/login  #afcenter的登录地址
afc.sso.oauth2.userinfo-url=http://localhost:1111/user  #获取用户信息的地址
afc.sso.oauth2.user-key=username  #如果获取的用户信息是json对象,映射关系是某个属性,则填写属性名称,否则默认返回的数据就是映射关系值,例如返回的userId
afc.sso.oauth2.access-token-key=access_token  #使用code获取access_token时,如果直接返回值,则无需配置,返回的是json对象,需要配置access_token属性名称

注意:afcenter和微应用使用oauth2-sso时都需要配置这个属性,其中微应用的redirect-url和login-url都是afcenter的地址

自定义实现

如果默认实现不满足需求,比如认证服务器的所有接口都是post请求(默认的获取token的接口是post请求,获取用户信息的是get请求),则可以继承com.primeton.gocom.afcenter.common.oauth2.DefaultOauth2ClientServiceImpl,重写对应的方法,或者参考该类,实现com.primeton.gocom.afcenter.api.oauth.IOauthClientService接口,重新实现自己的认证逻辑。实现完成后,确保该实现可以被spring的ioc容器管理即可。

注意:afc.sso.oauth2.enable配置是必须的,如果重新实现认证逻辑并且定义配置,则默认配置其他属性不需要配置。重新定义参数后,参考com.primeton.gocom.afcenter.sdk. SdkDefaultOauth2ClientServiceImpl的实现,完成微应用的认证重定向逻辑。

前端配置:

如果获取到token,也可以直接访问前端地址后添加Authorization参数 http://localhost:8000?Authorization={你的token}

上次更新: 2023/11/10上午10:23:43