OAuth2实现单点登录求解

发布于 2022-09-12 13:15:47 字数 245 浏览 11 评论 0

最近小弟在构建一个新的项目,想单独做一个统一认证中心,想用OAuth2实现单点登录,作为边写项目边学习OAuth2。
目前考虑到的问题:
1、每个子系统是分配不同的clientId还是相同的?如果是不同的clientId,返回的access_token是不同的吧?如果相同会不会有什么影响呢?
2、似乎只有在请求资源服务器的时候,才会校验access_token吧?不然也不知道access_token是否被注销了吧?
3、如果实现统一注销全部客户端?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

决绝 2022-09-19 13:15:47

以下不知道正不正确,只是自己的理解。
首先需要先区分,单点登录与OAuth2这两个东西。
单点登录指的是多个客户端公用一套用户认证系统。
OAuth2 是一个用来授权的协议,授权值得是客户端凭借我给的凭证能够拿去一些不敏感的数据。比如三方登录,我们通过授权后就可以获取微信,QQ用户的基本信息。然后就可以简化我们自己写登录注册这一步,但是逻辑还是需要自己写,我们最主要的目的是使用QQ一件登录这么一个功能,用户信息一般来说还是会自己保存在自己的数据库,具体登录注销这个操作,是你自己的服务来写,而不是只用三方的Oauth2接口就好了。

简单的来说OAuth2是授权系统面向第三方使用者的,单点登录只是一个登录服务。登录服务无非就是前段传递一个标识,这个标识用什么方法做都可以。

墨小沫ゞ 2022-09-19 13:15:47

OAuth2是给第三方系统做认证使用的,单点登录需要公用同一个认证中心,也就是其他系统的每一次请求都需要携带token到认证系统进行认证,这个token可以用JWT生成,也可以自己token放到缓存里面使用。

想要注销全部的token,JWT需要服务端维护一个黑名单token的缓存,自己生成的token从缓存里面删除即可。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文