最近在做第三方登录,遇到一个问题,想问问大佬们怎么解决的。 1. 从我的服务点击我自己做的第三方登录跳转到我自己做的认证服务器上,通过用户名密码获取code,然后通过code获取access_token,之后获取user_info。这一切的流程都木有问题,现在问题是,一旦我在一个浏览器中使用了第三方登录,我想换成其他用户登录时就会出问题,他不再跳转到login画面,而是直接跳过中间认证过程直接登录了,依旧是之前的账号。这个怎么解决? 2. 由于是公司项目,没办法给你们截图,我就用QQ的给你们描述一下。(将码云比作我的服务,将QQ比作我的OAuth服务) 点击上面的QQ登录。 输入用户密码,完成登录。以上流程都是好的。 2. 然后再本服务上点击退出登录,再点击QQ登录,这时候他直接登录了我之前登录的账号。(按道理来说应该再次弹出login画面才对。) 这个问题要怎么解决?小弟刚玩OAuth,不是太懂,求指教。
Oauth2协议本身不是为了做第三方登录的,所以如果你出现这样的问题,资源拥有端的服务也是自己的工程,你可以在资源拥有端服务写一个logout的endpoint,将当前使用accesstoken作废,然后再跳转回访问端做个session会话logout。问题解决。 资源端服务没了accesstoken,你自然就不会自动登相同用户了######回复 @季末晚枫 : 如果你用的是spring-security做的,可以百度一下spring oauth2认证中心的代码。如果是自已实现的Oauth2,就需要自己实现了。实现逻辑是认证服务提供一个表单验证帐密,验证通过就生成一个授权码返回######回复 @Kit_lee : 大佬,有没有可以参考的例子,刚上手,啥都不懂######回复 @季末晚枫 : 将鉴权页面单独做成一个服务吧,不用login页######回复 @Kit_lee : 鉴权页就是默认的login######回复 @季末晚枫 : 我不知道你的鉴权页面是咋整的,但按你现在的情况,是否鉴权页面有保存用户登入的会话信息?让鉴权页面独立出来不要保存会话信息就好了。######退出有问题吧######说明你已经登陆了,登出也得调用接口,######同样的问题,解决了没?######需要登出的时候调用logout接口,logout是框架自带的接口
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。