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

2015-05-23 20:11:36 +08:00
tanteng  tanteng

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

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

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

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

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

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

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

微博豆瓣上面的都是OAuth2 过程和你说的有一点点小不同,但是大体基本上相似,具体可以看RFC 6749
yydcool
yydcool
2015-05-24 10:30:57 +08:00
api文档都是猪写的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/193249

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX