hit9
V2EX  ›  问与答

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

  •  
  •   hit9 · Mar 10, 2013 · 3883 views
    This topic created in 4995 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
    joyjy
    Mar 11, 2013❤️1
    1
    是,访问令牌有有效期,过期可以用刷新令牌换新的访问令牌。
    但访问令牌不应该保存在 cookies 里。

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