激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - Java教程 - 利用Spring Social輕松搞定微信授權登錄的方法示例

利用Spring Social輕松搞定微信授權登錄的方法示例

2021-06-22 13:01LarrySu Java教程

這篇文章主要介紹了利用Spring Social輕松搞定微信授權登錄的方法示例,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

微信第三方登錄有兩種方式:掃碼登錄(微信開放平臺)和公眾號登錄(微信公眾平臺)

掃碼登錄可以用于pc等跨平臺應用,而公眾平臺必須在微信app內使用,且必須關注公眾號.

下面以公眾平臺為例,介紹如何基于spring social實現微信用戶授權并獲取到用戶信息.(微信開放平臺類似)

第一步:到微信公眾平臺后臺注冊應用并進行相關設置

微信公眾平臺后臺地址: https://mp.weixin.qq.com/

也可以先注冊一個測試號: https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

用微信掃碼登錄后臺后可以看到如下頁面:

利用Spring Social輕松搞定微信授權登錄的方法示例

其中的"appid"和"appsecret"需要記錄下來,一會要用到.

滑到下方找到" 網頁授權獲取用戶基本信息 ",點擊" 修改 ",將自己測試服務器的域名或ip填上去:

利用Spring Social輕松搞定微信授權登錄的方法示例

修改頁面:

利用Spring Social輕松搞定微信授權登錄的方法示例

第二步:添加相關代碼

我們假設服務端是基于springboot。

1.增加spring-social-wechat依賴:

maven:

?
1
2
3
4
5
<dependency>
  <groupid>com.ikasoa</groupid>
  <artifactid>spring-social-wechat</artifactid>
  <version>1.3.1</version>
</dependency>

或者gradle:

?
1
compile 'com.ikasoa:spring-social-wechat:1.3.1'

2.增加配置項目

application.yml:

?
1
2
3
4
5
spring:
 social:
  wechatmp:
   app-id: [appid]
   app-secret: [appsecret]

或者application.properties:

?
1
2
spring.social.wechatmp.app-id=[appid]
spring.social.wechatmp.app-secret=[appsecret]

其中" appid "和" appsecret "可以從微信公眾平臺后臺得到.

3.修改application.java

增加注解@enablesocial,并引用自動配置類(wechatmpautoconfiguration.class):

application.java

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.springframework.boot.springapplication;
import org.springframework.boot.autoconfigure.springbootapplication;
import org.springframework.context.annotation.import;
import org.springframework.social.config.annotation.enablesocial;
import org.springframework.social.wechat.autoconfigurer.wechatmpautoconfiguration;
 
@springbootapplication
@enablesocial
@import(wechatmpautoconfiguration.class)
public class application {
 
  public static void main(string[] args) throws exception {
    springapplication.run(application.class, args);
  }
 
}

4.增加signinadapter并注冊providersignincontroller

signinadapter用來處理微信授權成功后的相關操作,例如:

wechatsigninadapter.java

?
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
import org.springframework.social.connect.connection;
import org.springframework.social.connect.connectionkey;
import org.springframework.social.connect.web.signinadapter;
import org.springframework.social.wechat.api.user;
import org.springframework.social.wechat.api.wechat;
import org.springframework.stereotype.component;
import org.springframework.web.context.request.nativewebrequest;
 
@component
public class wechatsigninadapter implements signinadapter {
 
  @override
  public string signin(string openid, connection<?> connection, nativewebrequest request) {
    connectionkey key = connection.getkey();
    // 通過providerid判斷是否為微信公眾平臺授權
    if ("wechatmp".equalsignorecase(key.getproviderid())) {
      // 通過微信openid獲取到用戶詳細信息
      user user = ((wechat)connection.getapi()).useroperations().getuserprofile(openid);
      // 微信用戶詳細信息,可以記錄到數據庫.這里直接打印到后臺
      system.out.println(user);
      return “/success.htm”; // 返回登錄成功后跳轉的url
    }
    return “/error.htm”;
  }
 
}

將wechatsigninadapter注入到providersignincontroller中:

?
1
2
3
4
5
6
7
......
@bean
public providersignincontroller providersignincontroller(connectionfactorylocator connectionfactorylocator, usersconnectionrepository usersconnectionrepository, wechatsigninadapter wechatsigninadapter) {
  ((inmemoryusersconnectionrepository) usersconnectionrepository).setconnectionsignup((connection<?> connection) -> connection.getkey().getprovideruserid());
  return new providersignincontroller(connectionfactorylocator, usersconnectionrepository, wechatsigninadapter);
}
......

其中inmemoryusersconnectionrepository是基于內存存儲用戶信息的實現(usersconnectionrepository),也是默認的實現.此外springsocial還提供了jdbc的實現可選.

第三步:啟動并測試

在測試頁面里添加一個微信授權入口:

?
1
2
3
4
5
......
<form action="/signin/wechatmp" method="post">
  <button type="submit">微信授權登錄</button>
</form>
......

啟動springboot,在微信app中打開測試頁面點擊測試button.

測試頁面的域名必須與公眾平臺后臺" 網頁授權獲取用戶基本信息 "中設置的域名相同.

如果一切順利,服務端后臺就會打印該微信用戶的詳細信息:

利用Spring Social輕松搞定微信授權登錄的方法示例

頁面會跳轉到"/success.htm",也就是在wechatsigninadapter.signin中返回的地址.

注意,測試賬號需要先關注微信測試公眾號(測試號后臺掃二維碼可以關注),否則會報錯"errorcode:10006".

微信登錄實現已全部完成.

關于 微信開放平臺登錄 (掃碼登錄)與此類似,需要在 微信開放平臺 后臺申請"appid"和"appsecret",并將上面例子中的" wechatmp "改為" wechat "即可.

完整的例子代碼:

spring-social-wechat-sample

關于Spring Social項目

spring-social

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持服務器之家。

原文鏈接:https://my.oschina.net/venwyhk/blog/2987727

延伸 · 閱讀

精彩推薦
Weibo Article 1 Weibo Article 2 Weibo Article 3 Weibo Article 4 Weibo Article 5 Weibo Article 6 Weibo Article 7 Weibo Article 8 Weibo Article 9 Weibo Article 10 Weibo Article 11 Weibo Article 12 Weibo Article 13 Weibo Article 14 Weibo Article 15 Weibo Article 16 Weibo Article 17 Weibo Article 18 Weibo Article 19 Weibo Article 20 Weibo Article 21 Weibo Article 22 Weibo Article 23 Weibo Article 24 Weibo Article 25
主站蜘蛛池模板: 精品国产高清一区二区三区 | 91色一区二区三区 | 日本在线播放一区二区 | 国产高清在线观看av | 97精品国产高清在线看入口 | 国产成人网| freexxx69性欧美hd | 欧美a在线观看 | 国产一区网址 | 国产精品久久久久永久免费观看 | 中文字幕欧美亚洲 | 亚洲激情91| 干色视频 | 激情大乳女做爰办公室韩国 | chinese-xvideos | 久久精品日产高清版的功能介绍 | 色天使中文字幕 | 福利免费在线观看 | 欧美不卡视频在线观看 | 久久久久久久一区二区 | 国产成人视屏 | h视频免费在线 | 欧美成年视频 | 在线视频观看国产 | 免费永久看羞羞片网站入口 | 日本黄色一级电影 | 欧美一区二区黄色片 | 一区国产视频 | av手机在线免费播放 | 久久美女免费视频 | 免费在线观看午夜视频 | 精品国产专区 | 欧美成人午夜一区二区三区 | 色中色在线播放 | 黄色影院av | va毛片| 中文字幕 日本 | 91短视频在线观看免费最新 | 久久成人综合网 | 12av电影 | 精品中文一区 |