第三方如何实现微信登录
刚开始做的时候感觉高大上
为什么要使用第三方登录:
一般稍微作为一个大点的项目中币交易所如何登录,为了提高用户的群体都会做微信第三方登录
不懂可以直接加wxd20008
1
在往下看之前先注册第三方网站的开发者账号,创建应用完成审核中币交易所如何登录。
微信: 微信开发者平台
要实现第三方登录的功能首先要明白oauth2.0的认证原理中币交易所如何登录,由于第三方登录的认证授权流程大致都是一样的,在这里我只讲QQ的登录授权流程:
官网也有介绍:
这里写链接内容
其授权验证流程示意图如下:
client先访问:PC网站:中币交易所如何登录?
参数有: response_type=code 固定
client_id 申请应用时分配的id
redirect_uri 回调的url 中币交易所如何登录你自己网站的一个地址
通过第一步会返回 code码(注意:此code会在10分钟内过期)
通过Authorization Code获取Access Token(通过地址:中币交易所如何登录?)
展开全文
此时参数有:
grant_type
client_id
client_secret: 申请QQ登录成功后,分配给网站的appkey中币交易所如何登录。
code: 上一步返回的authorization code中币交易所如何登录。
redirect_uri
此刻你已经拿到了Access Token 中币交易所如何登录, 然后就是获取用户OpenID_OAuth2.0
根据第4步
中币交易所如何登录你会拿到(openid): callback( {“client_id”:”YOUR_APPID”,”openid”:”YOUR_OPENID”} ); 最后就是回去
中币交易所如何登录你的用户信息了:
返回结果:
“ret”:0,
“msg”:”“,
“nickname”:”YOUR_NICK_NAME”,
下面直接看代码(控制层):
* 首页
* @author Administrator
@Controller
@RequestMapping("/qqLogin")
public class HomePageController {
@RequestMapping("/login")
public String login()
throws IOException {
try {
AccessToken accessTokenObj = (new Oauth())
.getAccessTokenByRequest(request);
String accessToken = null, openID = null;
if (accessTokenObj.getAccessToken().equals("")) {
System.out.print("没有获取到响应参数");
return "error";
} else {
accessToken = accessTokenObj.getAccessToken();
session.setAttribute("accessToken",
accessToken);
// 利用获取到的accessToken 去获取当前用的openid
OpenID openIDObj = new OpenID(accessToken);
openID = openIDObj.getUserOpenID();
session.setAttribute("openID", openID);
return "success";
} catch (QQConnectException e) {
// TODO Auto-generated catch block
e.printStackTrace();
return "error";
@RequestMapping("/homePage")
public String homePage(Model model) {
return "index";
@RequestMapping("/inQQ")
public void inQQ(Model model, ,
) {
try {
response.sendRedirect(new Oauth().getAuthorizeURL(request));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (QQConnectException e) {
// TODO Auto-generated catch block
e.printStackTrace();
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
视图层:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<%-- <%@include file="/inc/taglib.jsp"%> --%>
<body>
<h2>Hello World!ss</h2>
<a href="${pageContext.request.contextPath} /qqLogin/inQQ">请使用
中币交易所如何登录你的QQ账号登陆</a> </body>
1
2
3
4
5
6
7
8
9
记得别忘
中币交易所如何登录了导包
评论