hit9
V2EX  ›  问与答

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

  •  
  •   hit9 · Mar 10, 2013 · 3788 views
    This topic created in 4905 days ago, the information mentioned may be changed or developed.
    用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 replies    1970-01-01 08:00:00 +08:00
    joyjy
        1
    joyjy  
       Mar 11, 2013   ❤️ 1
    是,访问令牌有有效期,过期可以用刷新令牌换新的访问令牌。
    但访问令牌不应该保存在 cookies 里。

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