# 流程图 ![](https://box.kancloud.cn/67d93f20bc068f1d15de6a341ee7ad2f_978x593.png) ## 效果图 ![](https://box.kancloud.cn/38f0f0c59d6822849b78f68ef39b3c2f_1922x950.gif) auth-sso模块 ``` server: port: 9997 # context-path: /clientOne #2.0不再使用此方式配置 security: ignored: /,/favicon.ico,/home.html,/dashboard.html,/js/**,/css/**,/webjars/** sessions: ALWAYS user: password: 123456 oauth2: sso: login-path: /dashboard/login client: client-id: owen client-secret: owen user-authorization-uri: http://127.0.0.1:9200/oauth/authorize #直接配置认证中心端口(http://127.0.0.1:9200/oauth/authorize),也可以配置网关端口 access-token-uri: http://127.0.0.1:9200/oauth/token #直接配置认证中心端口(http://127.0.0.1:9200/oauth/authorize),也可以配置网关端口 resource: # user-info-uri: http://127.0.0.1:8000/auth/users #返回认证服务器检查 # prefer-token-info: false token-info-uri: http://127.0.0.1:9200/oauth/check_token #直接配置认证中心端口(http://127.0.0.1:9200/oauth/authorize),也可以配置网关端口 prefer-token-info: true ``` ## CheckToken的目的 当用户携带token 请求资源服务器的资源时,**OAuth2AuthenticationProcessingFilter**拦截token,进行token 和userdetails 过程,把无状态的token 转化成用户信息。 ![](https://box.kancloud.cn/99dbcc024948c7e702de7c67932a5d34_920x493.png) ## 详解 1. OAuth2AuthenticationManager.authenticate(),filter执行判断的入口 ![](https://box.kancloud.cn/74db1bf14eadea9d24185ac8f89f5630_1269x737.png) 2. 当用户携带token 去请求微服务模块,被资源服务器拦截调用RemoteTokenServices.loadAuthentication ,执行所谓的check-token过程。 源码如下 ![](https://box.kancloud.cn/96a9b7cbd9114287e120268670d9739a_1195x507.png) 3. CheckToken 处理逻辑很简单,就是调用redisTokenStore 查询token的合法性,及其返回用户的部分信息 (username ) ![](https://box.kancloud.cn/50d167df2fddec7a2ef021d98ee01f3d_1293x665.png) 4. 继续看 返回给 RemoteTokenServices.loadAuthentication 最后一句 tokenConverter.extractAuthentication 解析组装服务端返回的信息 ![](https://box.kancloud.cn/d5484017859b8f5fbbbc0938deb75885_1320x576.png) 最重要的 userTokenConverter.extractAuthentication(map); ![](https://box.kancloud.cn/27101544ac168fedf70445ed6dd682a8_1328x465.png) 5,继续看 UerDetailsServiceImpl.loadUserByUsername 根据用户名去换取用户全部信息。 ![](https://box.kancloud.cn/ecefb4bf94a97fd399950ce608aca123_1315x727.png) ## 传统项目集成sso资料 链接:https://pan.baidu.com/s/1dr7jDDPodJ9r-GO4S\_pCnQ  提取码:3wat ### 授权码 AuthCodeInvoker使用演示 ![](https://box.kancloud.cn/228979149b36a6449f0f6ac365b595d7_1922x950.gif)