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

季末晚枫 发布于 2019/12/19 13:13
阅读 366
收藏 0

最近在做第三方登录,遇到一个问题,想问问大佬们怎么解决的。

1. 从我的服务点击我自己做的第三方登录跳转到我自己做的认证服务器上,通过用户名密码获取code,然后通过code获取access_token,之后获取user_info。这一切的流程都木有问题,现在问题是,一旦我在一个浏览器中使用了第三方登录,我想换成其他用户登录时就会出问题,他不再跳转到login画面,而是直接跳过中间认证过程直接登录了,依旧是之前的账号。这个怎么解决?

2. 由于是公司项目,没办法给你们截图,我就用QQ的给你们描述一下。(将码云比作我的服务,将QQ比作我的OAuth服务)

点击上面的QQ登录。

输入用户密码,完成登录。以上流程都是好的。

2. 然后再本服务上点击退出登录,再点击QQ登录,这时候他直接登录了我之前登录的账号。(按道理来说应该再次弹出login画面才对。)

这个问题要怎么解决?小弟刚玩OAuth,不是太懂,求指教。

加载中
1
Kit_lee
Kit_lee

Oauth2协议本身不是为了做第三方登录的,所以如果你出现这样的问题,资源拥有端的服务也是自己的工程,你可以在资源拥有端服务写一个logout的endpoint,将当前使用accesstoken作废,然后再跳转回访问端做个session会话logout。问题解决。  资源端服务没了accesstoken,你自然就不会自动登相同用户了

Kit_lee
Kit_lee
回复 @季末晚枫 : 如果你用的是spring-security做的,可以百度一下spring oauth2认证中心的代码。如果是自已实现的Oauth2,就需要自己实现了。实现逻辑是认证服务提供一个表单验证帐密,验证通过就生成一个授权码返回
季末晚枫
季末晚枫
回复 @Kit_lee : 大佬,有没有可以参考的例子,刚上手,啥都不懂
Kit_lee
Kit_lee
回复 @季末晚枫 : 将鉴权页面单独做成一个服务吧,不用login页
季末晚枫
季末晚枫
回复 @Kit_lee : 鉴权页就是默认的login
Kit_lee
Kit_lee
回复 @季末晚枫 : 我不知道你的鉴权页面是咋整的,但按你现在的情况,是否鉴权页面有保存用户登入的会话信息?让鉴权页面独立出来不要保存会话信息就好了。
下一页
0
衷于栖
衷于栖
说明你已经登陆了,登出也得调用接口,
0
preemyin
preemyin
同样的问题,解决了没?
季末晚枫
季末晚枫
需要登出的时候调用logout接口,logout是框架自带的接口
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部