V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
hit9
V2EX  ›  问与答

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

  •  
  •   hit9 · 2013-03-10 19:19:53 +08:00 · 3217 次点击
    这是一个创建于 4078 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用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里面,登录就还快点。
    6 条回复    1970-01-01 08:00:00 +08:00
    joyjy
        1
    joyjy  
       2013-03-11 11:44:31 +08:00   ❤️ 1
    是,访问令牌有有效期,过期可以用刷新令牌换新的访问令牌。
    但访问令牌不应该保存在 cookies 里。

    去看 OAuth 2.0 协议吧。
    hit9
        2
    hit9  
    OP
       2013-03-11 14:11:49 +08:00
    @joyjy 谢谢回复 。 可是我看豆瓣他们的api里面有刷新的办法,github的API文档没有给出有效与否的判断或者刷新令牌的办法啊
    joyjy
        3
    joyjy  
       2013-03-11 15:34:22 +08:00
    抱歉,我没看 Github 的具体实现,不过我看他们的返回值没有具体过期时间和这条评论 https://gist.github.com/technoweenie/419219#comment-3232,大概过期只能是服务器返回 401 之后要求重新走 webflow 吧。
    hit9
        4
    hit9  
    OP
       2013-03-11 19:18:43 +08:00
    @joyjy 谢谢。如果access_token不存在cookie里,我们怎么知道该用哪个cookie呢
    joyjy
        5
    joyjy  
       2013-03-12 09:23:14 +08:00
    @hit9 我的意思是只要能获取到 access_token 就能做用户授权的所有操作,所以需要考虑安全存储的事。
    hit9
        6
    hit9  
    OP
       2013-03-12 11:47:14 +08:00
    @joyjy 我看了下别人的网站,看到有cookie. 不过明显的是加密过的cookie. 也就是说他们是把token存到session中 根据状态码来判断是否有效。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   3291 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 21ms · UTC 13:49 · PVG 21:49 · LAX 06:49 · JFK 09:49
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.