3.3.1 首先,qq会给我发个提示:说我已经授权了,表名qq已经知道了,并且也已经留取证据了,你就不可能反咬qq一口了,这也是OAuth2.0设置这一步的目的所在。整个三个角色的态度都会有记录。
3.3.2 网址如下:https://gitee.com/auth/qq_connect/callback?code=FA0E3CBB6B699D894EE2BFD85691A561&state=f70af08d82d762a56d844e0b0f1d0b7abafd48127c5b4ee0 很明显可以看到,这个地址是之前码云填写的redirect_uri的地址,这里qq跳转回来,并携带上了code码,说明用户已经同意了你的授权,置于state可以看见还是原样返回的。
3.4 用code获取access_token
上一步中,码云已经获取到了code码,但这个 code 只能表明,用户允许码云从 qq上获取该用户的数据,如果我直接拿这个 code 去 qq访问数据一定会被拒绝,因为任何人都可以持有 code,qq并不知道 code 持有方就是码云。
所以换取access_token的时候就要码云自己也携带着自己向qq申请的账号密码来换取了,这里边已经在界面上看不到了,是再跳转的过程中默默进行的。
POST https://www.oauth.qq.com/login/oauth/access_token //去请求qq获取access_token的地址 一般都是post params = { code: "xxx", client_id: "xxx", client_secret: "xxx", redirect_uri: "https://gitee.com/auth/qq_connect/callback" }