uniapp實現(xiàn)微信小程序一鍵登錄功能
前言
實現(xiàn)微信一鍵登錄的流程:
① 微信小程序端獲取臨時憑證code(code只能被消費一次)
② 將code交給后端
③ 后端拿到code,向微信服務器發(fā)起請求,拿到openid(openid代表微信用戶在一個小程序中的唯一標識,另外拓展一下unionid代表微信用戶在企業(yè)中的唯一標識)
④ 后端查詢數(shù)據(jù)庫是否存在這個openid,存在則登錄,返回token;不存在則注冊賬號,登錄,返回token
一、復制 AppID 和 AppSecret
去 微信公眾平臺 -> 開發(fā)與服務 -> 開發(fā)管理 :微信公眾平臺 (qq.com)
復制AppID和AppSecret
二、通過uni.login() 拿到臨時憑證code
uni.login({ provider: 'weixin', success: function (loginRes) { // 打印臨時憑證 console.log(loginRes.code) } });
另外,可以通過uni.getUserInfo()獲取到用戶的頭像、昵稱、手機號等信息,不過手機號需要企業(yè)身份才可以,如:
// 登錄成功 uni.getUserInfo({ provider: 'weixin', success: function(info) { // 獲取用戶信息成功, info.authResult是用戶信息 const wxUserInfo = info.userInfo // 打印頭像url console.log(wxUserInfo.avatarUrl) // 打印昵稱 console.log(wxUserInfo.nickName) // 打印用戶詳細信息 console.log(wxUserInfo) } })
三、后端用臨時憑證code換取openid
在spring-web工程中導入maven工具依賴
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>5.8.16</version> </dependency>
在下面工具類中配置自己的AppID,AppSecret后即可使用
import cn.hutool.http.HttpResponse; import cn.hutool.http.HttpUtil; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import org.springframework.web.util.UriComponentsBuilder; public class WechatUtil { // 配置自己的app_id、app_secret private static final String APP_ID = "Your_APP_ID"; private static final String APP_SECRET = "Your_APP_SERCERT"; public static String getOpenId(String loginCode) { String url = "https://api.weixin.qq.com/sns/jscode2session"; String requestUrl = UriComponentsBuilder.fromHttpUrl(url) .queryParam("appid", APP_ID) .queryParam("secret", APP_SECRET) .queryParam("js_code", loginCode) .queryParam("grant_type", "authorization_code") .toUriString(); HttpResponse response = HttpUtil.createGet(requestUrl).execute(); // 獲取 session_key 和 openid JSONObject parseObj = JSONUtil.parseObj(response.body()); String openid = (String) parseObj.get("openid"); return openid; } }
拿到openid之后便可以通過查詢數(shù)據(jù)庫實現(xiàn)一鍵登錄了
到此這篇關于uniapp實現(xiàn)微信小程序一鍵登錄的文章就介紹到這了,更多相關uniapp微信小程序一鍵登錄內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
用Javascript實現(xiàn)UTF8編碼轉換成gb2312編碼
這篇文章主要介紹了用Javascript實現(xiàn)UTF8編碼轉換成gb2312編碼2006-12-12前端大文件分片下載具體實現(xiàn)方法(看這一篇就夠了)
本文介紹了在瀏覽器中下載大文件的技術方案,包括分片下載、斷點續(xù)傳、進度條顯示、取消及暫停下載和文件合并等功能,分片下載可以降低網(wǎng)絡傳輸中斷的風險,并減少內(nèi)存占用,需要的朋友可以參考下2024-10-10微信小程序wx.getUserInfo授權獲取用戶信息(頭像、昵稱)的實現(xiàn)
這篇文章主要介紹了微信小程序wx.getUserInfo授權獲取用戶信息(頭像、昵稱)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-08-08