开发者社区> 问答> 正文

OAuth2.0 授权码模式相关问题报错 

最近在做第三方登录,遇到一个问题,想问问大佬们怎么解决的。 1. 从我的服务点击我自己做的第三方登录跳转到我自己做的认证服务器上,通过用户名密码获取code,然后通过code获取access_token,之后获取user_info。这一切的流程都木有问题,现在问题是,一旦我在一个浏览器中使用了第三方登录,我想换成其他用户登录时就会出问题,他不再跳转到login画面,而是直接跳过中间认证过程直接登录了,依旧是之前的账号。这个怎么解决? 2. 由于是公司项目,没办法给你们截图,我就用QQ的给你们描述一下。(将码云比作我的服务,将QQ比作我的OAuth服务) 点击上面的QQ登录。 输入用户密码,完成登录。以上流程都是好的。 2. 然后再本服务上点击退出登录,再点击QQ登录,这时候他直接登录了我之前登录的账号。(按道理来说应该再次弹出login画面才对。) 这个问题要怎么解决?小弟刚玩OAuth,不是太懂,求指教。

展开
收起
kun坤 2020-06-03 11:32:07 713 0
2 条回答
写回答
取消 提交回答
  • 我也是遇到了这个问题,楼主解决了么,我也是迫切需要知道呢,唉

    2021-04-07 12:03:46
    赞同 展开评论 打赏
  • Oauth2协议本身不是为了做第三方登录的,所以如果你出现这样的问题,资源拥有端的服务也是自己的工程,你可以在资源拥有端服务写一个logout的endpoint,将当前使用accesstoken作废,然后再跳转回访问端做个session会话logout。问题解决。  资源端服务没了accesstoken,你自然就不会自动登相同用户了######回复 @季末晚枫 : 如果你用的是spring-security做的,可以百度一下spring oauth2认证中心的代码。如果是自已实现的Oauth2,就需要自己实现了。实现逻辑是认证服务提供一个表单验证帐密,验证通过就生成一个授权码返回######回复 @Kit_lee : 大佬,有没有可以参考的例子,刚上手,啥都不懂######回复 @季末晚枫 : 将鉴权页面单独做成一个服务吧,不用login页######回复 @Kit_lee : 鉴权页就是默认的login######回复 @季末晚枫 : 我不知道你的鉴权页面是咋整的,但按你现在的情况,是否鉴权页面有保存用户登入的会话信息?让鉴权页面独立出来不要保存会话信息就好了。######退出有问题吧######说明你已经登陆了,登出也得调用接口,######同样的问题,解决了没?######需要登出的时候调用logout接口,logout是框架自带的接口

    2020-06-03 11:32:13
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
安全机制与User账户身份验证实战 立即下载
低代码开发师(初级)实战教程 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载