第三方如何实现微信登录

Connor 币安app 2022-11-04 241 0

刚开始做的时候感觉高大上

为什么要使用第三方登录:

一般稍微作为一个大点的项目中币交易所如何登录,为了提高用户的群体都会做微信第三方登录

第三方如何实现微信登录

不懂可以直接加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

记得别忘

中币交易所如何登录

了导包

评论