qq oauth 的时候 登陆成功后怎么返回上一页(即怎么知道该重定向到哪个地址)?

我自己的网站在接入 qq oauth 登录,但是我遇到了一个问题:qq oauth 的时候 登陆成功后怎么返回发起QQ登录的那一页

以简书举例:我在 https://www.jianshu.com/p/90538bf9addf 页面点击登录

图片.png

这个时候会跳转到一个新的登录页面 :https://www.jianshu.com/sign_in

图片.png

点击 QQ 登录之后,又进入一个新的窗口

图片.png

QQ 登录成功后,又 302 重定向回了一开始的 https://www.jianshu.com/p/90538bf9addf 页面

图片.png

我的问题是,登录成功后,怎么知道应该重定向回的页面地址是 https://www.jianshu.com/p/90538bf9addf 呢? 按理来说,这么多窗口跳转之后,refer 这些信息以及丢了呀

这个 location 不是来自 refer 的话?是存储在浏览器本地了还是存储在服务端了?

阅读 963
1 个回答

1、未登录时浏览简书页面, 会记录当前url到cookie的signin_redirect属性
image.png
2、在登录页面点击qq图标会通过接口重定向qq授权接口有redirect_uri属性

https://www.jianshu.com/users/auth/qq_connect

image.png
3、qq授权成功后回调redirect_uri地址,然后获取cookie中的signin_redirect属性,并重定向

https://www.jianshu.com/users/auth/qq_connect/callback?code=xxx&state=xxx
推荐问题