V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tanteng
V2EX  ›  PHP

看我对授权过程的理解对不对?

  •  
  •   tanteng · 2015-05-23 20:11:36 +08:00 · 2627 次点击
    这是一个创建于 3471 天前的主题,其中的信息可能已经有所发展或是发生改变。

    像微信、微博、淘宝、豆瓣等提供API给开发者,往往需要申请token,请求数据要根据规则生成签名等,对于这个过程,我大概讲讲,看我的理解对不对。

    比如微信,开发者有Appid,appsecrt两个东西,需要请求一个url传递这两个参数获取token,我理解成appid和appsecrt相当于用户名密码一样(我这是比喻),微信服务器验证你是“注册”的开发者账户,账户没有问题,那么就给你生成一个token,这个token就是给你一把钥匙。

    你拿着这把钥匙,后面的请求带上这把钥匙,就不用再验证你的身份了,就可以请求API接口传送或接受数据。

    那么构造签名,比如参数升序加盐加密的过程,它的意义是什么?我理解成这是第二重保护,有token如果token被劫持了或泄露了别人也可以拿来做点什么,但是构造签名每次都需要验证,所以签名是每次都不同的,这样可以更加保护数据不被泄露。

    我的理解对吗,如果不对,哪里有问题,请帮我指出,谢谢!!(最近做服务器端的类似于这种东西,别人请求我们API,我们返回数据,也做这样的验证,参照网上的资料做完了,有些细节还是没想明白。)

    5 条回复    2015-05-24 10:30:57 +08:00
    takatost
        1
    takatost  
       2015-05-23 21:46:53 +08:00
    直接找 oauth,有一堆封装好的给你用
    GhostFlying
        2
    GhostFlying  
       2015-05-23 21:59:58 +08:00 via Android
    Oauth2 ,直接看 RFC 或者实现就好了
    oott123
        3
    oott123  
       2015-05-24 08:46:57 +08:00
    签名是确保请求来自知道 secret 的客户端。
    zts1993
        4
    zts1993  
       2015-05-24 09:34:16 +08:00
    微信 和微信开发平台在以前不是一个概念我不知道现在是什么样的了。。

    如果我没记错的话微信就是你说的那样,没有问题。

    微博豆瓣上面的都是OAuth2 过程和你说的有一点点小不同,但是大体基本上相似,具体可以看RFC 6749
    yydcool
        5
    yydcool  
       2015-05-24 10:30:57 +08:00
    api文档都是猪写的
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2964 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 00:16 · PVG 08:16 · LAX 16:16 · JFK 19:16
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.