用Github登录每次都要发送三次请求吗?

2013-03-10 19:19:53 +08:00
 hit9
用github oauth的话需要先 redirect 到 https://github.com/login/oauth/authorize


GET https://github.com/login/oauth/authorize?client_id=xxxxxx

然后会返回code,我们接收code,再发送post 到 https://github.com/login/oauth/access_token获取 access_token,

然后再根据token来获取用户的信息(github_id ..)

我感觉发送的请求好多,十分慢。 是我理解错了么?。

这个access_token是不是可以多次利用?那样的话我们就可以种在cookies里面,登录就还快点。
3234 次点击
所在节点    问与答
6 条回复
joyjy
2013-03-11 11:44:31 +08:00
是,访问令牌有有效期,过期可以用刷新令牌换新的访问令牌。
但访问令牌不应该保存在 cookies 里。

去看 OAuth 2.0 协议吧。
hit9
2013-03-11 14:11:49 +08:00
@joyjy 谢谢回复 。 可是我看豆瓣他们的api里面有刷新的办法,github的API文档没有给出有效与否的判断或者刷新令牌的办法啊
joyjy
2013-03-11 15:34:22 +08:00
抱歉,我没看 Github 的具体实现,不过我看他们的返回值没有具体过期时间和这条评论 https://gist.github.com/technoweenie/419219#comment-3232,大概过期只能是服务器返回 401 之后要求重新走 webflow 吧。
hit9
2013-03-11 19:18:43 +08:00
@joyjy 谢谢。如果access_token不存在cookie里,我们怎么知道该用哪个cookie呢
joyjy
2013-03-12 09:23:14 +08:00
@hit9 我的意思是只要能获取到 access_token 就能做用户授权的所有操作,所以需要考虑安全存储的事。
hit9
2013-03-12 11:47:14 +08:00
@joyjy 我看了下别人的网站,看到有cookie. 不过明显的是加密过的cookie. 也就是说他们是把token存到session中 根据状态码来判断是否有效。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/62499

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX