最近在学习 oauth2 协议,准备自己实现一套..
在分析新浪微博的单点登录的功能的时候发现一个问题.
我首先登录了微博,按理来说就会拥有微博的 session.
然后我在登录网易云音乐,然后选择使用微博登录,提示还是需要登录并授权
我已经登录了微博不能直接授权吗?
不知道有没有大佬来解释一下呢?
1
TimePPT 2017-10-19 16:30:29 +08:00
首先,要确定一件事:网易云音乐的微博登录是什么场景下弹出的。是同一浏览器的 web 页,还是客户端的 webview ?
其次,这种问题一般去看下官方文档就有答案了。 http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6 |
2
p2pCoder 2017-10-19 16:32:46 +08:00
你登录的站点和微博的 api 授权站点是不同的站点,是不会 session 共享的
如果设计成共享的,那么就可以使用很多方式来 盗取 可以使用新浪微博 oauth2 登录的第三方网站的账号了。 |
3
TimePPT 2017-10-19 16:36:33 +08:00
另外说下,登录时如果引入强制登录的参数,会在每次授权时必须让用户去填用户密码 强制登录 授权页会默认读取当前用户的微博登录状态,如果你想让用户重新登录,请在调用 authorize 接口时传入参数:forcelogin=true,默认不填写此参数相当于 forcelogin=false |
4
zhouyou457 OP |
5
LinJunzhu 2017-10-19 16:37:30 +08:00
歪个题, 单点登录 SSO 跟 oauth2 是两回事
|
6
TimePPT 2017-10-19 16:38:11 +08:00 1
@zhouyou457 看你 url,再看我上面那条 forcelogin=true
|
7
zhouyou457 OP @TimePPT 嗯,知道了,谢谢,这应该是网易云音乐设置必须重新登录的吧.
|
8
TimePPT 2017-10-19 16:43:43 +08:00
@zhouyou457 是的,这样便利性会低,但安全性会高一些,特别是多人共用电脑,或频繁更换浏览器微博账号的用户比较合适。
|
9
TimePPT 2017-10-19 16:46:58 +08:00
@zhouyou457 所以整个过程是
曾经向网易云授权过微博登录——>重新使用微博登录网易云——>发现 token 过期——>跳转至授权页——>授权参数带有强制登录参数——>登录界面 |
10
zhouyou457 OP @TimePPT 谢谢你如此认真的回答.
|
11
TimePPT 2017-10-19 16:49:27 +08:00
@zhouyou457 客气,因为工作原因,主持过多家公司的登录注册优化,QQ 微信 微博 三者的 Oath 登录比较熟而已
|