java - 微信登录oauth2.0授权相关问题
PHP中文网
PHP中文网 2017-04-18 09:55:06
0
4
646

微信登录,用户授权给第三方,第三方在获得授权码之前微信怎么判断是哪个用户授的权,还有请求accessToken时,只带了code,势必生成code的时候会有和用户相关的绑定信息,要不怎么去验code,只有code正确,才会生成相应的token,求大神指教,感觉理解还不到位

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(4)
小葫芦

code是临时数据,由于是通过链接跳转传递给你的,所以这个参数不能是用户身份相关的数据,所以给你一个临时数据,然后你再用这个临时数据去换取代表用户身份的token。

黄舟

code可以理解是用户的授权,token可以理解为是第三方给调用方该用户授权。

刘奇

微信授权需要你扫二维码,你扫码的时候微信会发送信息给服务器,这样服务器就知道是谁授的权了。
返回的code是服务器生成的唯一值,和用户信息一起保存在服务器上呢,微信当然可以分辨

PHPzhong

谢谢以上的回答,我看了一点 源码,是的确实有绑定关系,生成授权码时,微信认证服务器会判断是否登录,如果登录后,会生成这个用户相关的token(usernamepasswordtoken,这个token跟换的token没有关系,只是用来标识用户的),然后生成code,保存code、client_id、username三者的关系,然后返回code,当客户端去请求token时,会根据client_id、code验code的正确性,正确的话,微信认证服务器会获得当前用户,然后根据client_id、username、scop(如果scope不为空的话)生成authenicateId,再生成accessToken,保存authenicateId和accessToken的关系,最后removeCode,返回accessToken

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!