tanteng
V2EX  ›  PHP

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

  •  
  •   tanteng · May 23, 2015 · 3083 views
    This topic created in 4093 days ago, the information mentioned may be changed or developed.

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

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

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

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

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

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

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

    微博豆瓣上面的都是OAuth2 过程和你说的有一点点小不同,但是大体基本上相似,具体可以看RFC 6749
    yydcool
        5
    yydcool  
       May 24, 2015
    api文档都是猪写的
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1099 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 55ms · UTC 18:15 · PVG 02:15 · LAX 11:15 · JFK 14:15
    ♥ Do have faith in what you're doing.