像微信、微博、淘宝、豆瓣等提供API给开发者,往往需要申请token,请求数据要根据规则生成签名等,对于这个过程,我大概讲讲,看我的理解对不对。
比如微信,开发者有Appid,appsecrt两个东西,需要请求一个url传递这两个参数获取token,我理解成appid和appsecrt相当于用户名密码一样(我这是比喻),微信服务器验证你是“注册”的开发者账户,账户没有问题,那么就给你生成一个token,这个token就是给你一把钥匙。
你拿着这把钥匙,后面的请求带上这把钥匙,就不用再验证你的身份了,就可以请求API接口传送或接受数据。
那么构造签名,比如参数升序加盐加密的过程,它的意义是什么?我理解成这是第二重保护,有token如果token被劫持了或泄露了别人也可以拿来做点什么,但是构造签名每次都需要验证,所以签名是每次都不同的,这样可以更加保护数据不被泄露。
我的理解对吗,如果不对,哪里有问题,请帮我指出,谢谢!!(最近做服务器端的类似于这种东西,别人请求我们API,我们返回数据,也做这样的验证,参照网上的资料做完了,有些细节还是没想明白。)
1
takatost 2015-05-23 21:46:53 +08:00
直接找 oauth,有一堆封装好的给你用
|
2
GhostFlying 2015-05-23 21:59:58 +08:00 via Android
Oauth2 ,直接看 RFC 或者实现就好了
|
3
oott123 2015-05-24 08:46:57 +08:00
签名是确保请求来自知道 secret 的客户端。
|
4
zts1993 2015-05-24 09:34:16 +08:00
微信 和微信开发平台在以前不是一个概念我不知道现在是什么样的了。。
如果我没记错的话微信就是你说的那样,没有问题。 微博豆瓣上面的都是OAuth2 过程和你说的有一点点小不同,但是大体基本上相似,具体可以看RFC 6749 |
5
yydcool 2015-05-24 10:30:57 +08:00
api文档都是猪写的
|