刚开始做的时候感觉高大上
为什么要使用第三方登录:
一般稍微作为一个大点的项目,为了提高用户的群体都会做第三方登录(如:QQ,微信,新浪等)
在往下看之前先注册第三方网站的开发者账号,创建应用完成审核。
要实现第三方登录的功能首先要明白oauth2.0的认证原理,由于第三方登录的认证授权流程大致都是一样的,在这里我只讲QQ的登录授权流程:
官网也有介绍:
这里写链接内容
其授权验证流程示意图如下:
-
client先访问:PC网站:https://graph.qq.com/oauth2.0/authorize?
参数有: response_type=code 固定
client_id 申请应用时分配的id
redirect_uri 回调的url 你自己网站的一个地址 -
通过第一步会返回 code码(注意:此code会在10分钟内过期)
-
通过Authorization Code获取Access Token(通过地址:https://graph.qq.com/oauth2.0/token?)
此时参数有:
grant_type
client_id
client_secret: 申请QQ登录成功后,分配给网站的appkey。
code: 上一步返回的authorization code。
redirect_uri - 此刻你已经拿到了Access Token , 然后就是获取用户OpenID_OAuth2.0
https://graph.qq.com/oauth2.0/me?access_token=获取到的Access Token - 根据第4步你会拿到(openid): callback( {“client_id”:”YOUR_APPID”,”openid”:”YOUR_OPENID”} );
- 最后就是回去你的用户信息了:
https://graph.qq.com/user/get_user_info?access_token=YOUR_ACCESS_TOKEN&oauth_consumer_key=YOUR_APP_ID&openid=YOUR_OPENID
返回结果:
{
“ret”:0,
“msg”:”“,
“nickname”:”YOUR_NICK_NAME”,
…
}
下面直接看代码(控制层):
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
视图层:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
记得别忘了导包
解开来见证奇迹的时刻到了:
至此结束!!!!!!!!
有需要源码的留下qq邮箱