微信授權登錄01-PC端

目錄

## 前言

1.準備工作

1.1 網站域名

1.2 微信開放平臺

2.授權授權登錄開發

2.1 前端開發

2.1.1 發起授權登錄跳轉至掃碼頁面

2.1.2 掃碼成功后回調處理

2.2 后端開發

2.2.1? 根據code查詢用戶信息

2.2.2 自動注冊登錄

## 后記


## 前言

最近整了個AI助手網站,手機號注冊登錄時需要填手機號驗證碼什么的有點麻煩,于是考慮加個微信授權登錄。PC端這里實現的效果是點擊“微信登錄”按鈕,然后跳轉掃碼授權頁面,打開手機微信掃碼后自動登錄網站。開發過程中踩了一些坑這里簡單記錄下:

1.準備工作

1.1 網站域名

需要有個外網可訪問的已備案域名,在微信開放平臺申請創建網站應用時使用。

1.2 微信開放平臺

需要在微信開放平臺注冊賬號,然后在管理中心-網站應用頁面創建網站應用,這里需要填寫自己網站的相關信息發起申請,一般1天左右會出結果是否通過。通過之后拿到AppID --前端跳轉微信授權時用。

開放平臺地址: 微信開放平臺

2.授權授權登錄開發

2.1 前端開發

2.1.1 發起授權登錄跳轉至掃碼頁面

微信登錄按鈕點擊事件:

//微信登錄
const wxLogin = function () {let protocol = window.location.protocol;let host = window.location.host;let redirect_uri = protocol + '//' + host + '/login'; //掃碼后的回調地址let appId = 'xxxxx'; //開放平臺AppIDlet wxUrlStart = 'https://open.weixin.qq.com/connect/qrconnect?appid=' + appId + '&redirect_uri=';let wxUrlEnd = '&response_type=code&scope=snsapi_login&state=STATE#wechat_redirect';let allUrl = wxUrlStart + encodeURIComponent(redirect_uri) + wxUrlEnd;window.location.replace(allUrl);
}

2.1.2 掃碼成功后回調處理

掃碼成功后會自動跳轉至自定義的回調地址redirect_uri,并帶上開放平臺返回的code,拿到這個code去后臺查詢用戶信息進行后續自動注冊登錄操作。

//獲取微信授權重定向后的codelet code = getUrlParam('code');if (code) {//微信授權自動注冊登錄httpPost('/api/user/wxLogin', {code: code}).then((res) => {setUserToken(res.data)router.push('/chat')}).catch((e) => {ElMessage.error('登錄失敗,' + e.message)})} //頁面重定向獲取URL中參數值
const getUrlParam = function(queryName) {const queryString = window.location.search;const params = new URLSearchParams(queryString);const value = params.get(queryName);return value ? decodeURIComponent(value) : null;
}

2.2 后端開發

2.2.1? 根據code查詢用戶信息

先拿code獲取AccessToken,再拿AccessToken獲取用戶的openid、昵稱等信息,其中openid是用戶唯一標識,可以拿來注冊登錄用。

需要用到的接口地址:

獲取AccessToken:https://api.weixin.qq.com/sns/oauth2/access_token

獲取用戶信息:https://api.weixin.qq.com/sns/userinfo

具體代碼開發可參考官方接口文檔:網站應用微信登錄開發指南

2.2.2 自動注冊登錄

拿到用戶openid后即可作為用戶唯一標識進行注冊登錄操作。

## 后記

至此開發工作已完成,在域名對應的服務器上部署啟動項目,測試功能OK即可。

最后提一下自己的小站,支持多種AI對話及MJ繪畫功能,歡迎體驗交流:小麥AI智能助手

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/10118.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/10118.shtml
英文地址,請注明出處:http://en.pswp.cn/web/10118.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

React 學習-5

React 條件渲染: 與js中的寫法一致 注意:在 JavaScript 中,true && expression 總是返回 expression,而 false && expression 總是返回 false。 因此,如果條件是 true,&& 右側的元素就會被渲…

BL120協議Modbus RTU和Modbus TCP互轉

Modbus網關BL120是一款專注于Modbus協議之間相互轉換的通信設備。Modbus網關BL120支持多種下行采集協議,包括Modbus RTU和Modbus TCP,同時在上行轉發協議方面同樣支持Modbus RTU和Modbus TCP。Modbus網關為Modbus RTU和Modbus TCP協議的相互轉換提供了穩…

回爐重造java----單列集合(List,Set)

體系結構: 集合主要分為兩種,單列集合collection和雙列集合Map,區別在于單列集合一次插入一條數據,而雙列的一次插入類似于key-value的形式 單列集合collection 注:紅色的表示是接口,藍色的是實現類 ①操作功能: 增加: add()&am…

SRS流媒體服務器在Linux下的安裝

目錄 一、安裝 1、切換到管理員權限 2、先安裝基礎依賴環境 3、下載SRS源文件

引領AI數據標注新紀元:景聯文科技為智能未來筑基

在人工智能蓬勃發展的今天,數據如同燃料,驅動著每一次技術飛躍。在這場智能革命的浪潮中,景聯文科技憑借其深厚的專業實力與前瞻性的戰略眼光,正站在行業前沿,為全球的人工智能企業提供堅實的數據支撐。 全國布局&…

智能座艙語音助手產品方案

一、用戶調研與痛點分析 1.目標用戶分析 用戶畫像 性別女性年齡50地域2-3線城市職業退休或退居二線教育中專、 大專、 本科財務家庭財務管理者愛好享受生活、 照顧家庭標簽有閑有小錢二、產品定位與賣點提煉 購車目的 愉悅自我, 專屬于自己的座駕: 家…

bitmap requires a valid src attribute

關于作者:CSDN內容合伙人、技術專家, 從零開始做日活千萬級APP。 專注于分享各領域原創系列文章 ,擅長java后端、移動開發、商業變現、人工智能等,希望大家多多支持。 未經允許不得轉載 目錄 一、導讀二、概覽三、問題記錄四、 推…

ncnn 算子操作描述

ncnn 算子操作描述,具體查詢見 ncnn/docs/developer-guide/operators.md at master Tencent/ncnn GitHub 都是從上述地方copy過來的,做備份。 具體如下:(針對有些算子 用pytorch 實現了用例,可以對比學習&#xf…

Java學習筆記網站技術博客匯總

江南一點雨網站 https://www.javaboy.org/ 個人博客 https://yanbingzn.github.io/ CS-Notes 面試筆記 https://www.cyc2018.xyz/ JavaGuide(Java學習&面試指南) https://javaguide.cn/home.html SpringMVC 教程 https://springmvc.javaboy…

C++運算符重載(操作符重載)

運算符重載 1. 運算符重載基礎1.1 運算符重載語法1.2 運算符重載細節補充1.3 更多的運算符重載 2. 重載單目運算符3. 如何直接輸入輸出對象類型——重載運算符 << 和 >>3.1 單個對象實現 cou <<3.2 多個對象實現 cout<<3.3 右移運算符 輸入 cin >&g…

Excel-VBA報錯01-解決方法

【已刪除的部件:部件/xl/vbaProject.bin。(Visual Basic for Applications(VBA))】 1.問題復現&#xff1a; Win10 &#xff1b;64位 &#xff1b;Office Excel 2016 打開帶有宏的Excel文件&#xff0c;報錯&#xff1a;【已刪除的部件&#xff1a;部件/xl/vbaProject.bin。…

KBU1010-ASEMI新能源專用KBU1010

編輯&#xff1a;ll KBU1010-ASEMI新能源專用KBU1010 型號&#xff1a;KBU1010 品牌&#xff1a;ASEMI 封裝&#xff1a;KBU-4 最大重復峰值反向電壓&#xff1a;1000V 最大正向平均整流電流(Vdss)&#xff1a;10A 功率(Pd)&#xff1a;中小功率 芯片個數&#xff1a;4…

pandas數據清洗和統計實例

步驟&#xff1a; 統計每一個列的標簽個數去除或者填充某一列NaN值遍歷某一列分組統計在DataFrame中插入行在DataFrame中追加行 pandas讀取Json數據或csv數據 以一個json數據為例&#xff0c;只要json每一個object都一致就可以&#xff1a; # 讀取json或csv df_f pd.read_…

抖店選品都怎么選品?什么樣的產品更吸引人,更具有購買力?

大家好&#xff0c;我是電商花花。 抖店選品一直都是我們無貨源商家的核心問題&#xff0c;不管是出單、還是爆單&#xff0c;店鋪想要有銷量的前提下都是選品。 很多人一上來就是就是選品&#xff0c;沒有選品經驗還瞎選品&#xff0c;結果到最后選了一堆出單的產品&#xf…

回聲消除原理

回聲消除原理 回聲消除是一種音頻處理技術&#xff0c;用于消除聲學空間中發生的回聲。其基本原理如下&#xff1a; 1. 遠端信號估計 捕獲遠端揚聲器發出的信號&#xff08;通常通過麥克風&#xff09;。使用自適應濾波器估計遠端信號&#xff0c;即回聲信號。 2. 回聲信號…

用wordpress建外貿獨立站的是主流的外貿建站方式

WordPress因其易用性、靈活性和強大的功能支持&#xff0c;成為了外貿企業首選的網站建設平臺。 從技術和功能角度來看&#xff0c;WordPress提供了豐富的主題和插件&#xff0c;這些都是構建專業外貿網站所必需的。例如&#xff0c;有專門為外貿網站設計的主題和插件&#xf…

【棧】Leetcode 驗證棧序列

題目講解 946. 驗證棧序列 算法講解 在這里就只需要模擬一下這個棧的出棧順序即可&#xff1a;使用一個stack&#xff0c;每次讓pushed里面的元素入棧&#xff0c;如果當前棧頂的元素等于poped容器中的當前元素&#xff0c;因此就需要讓棧頂元素出棧&#xff0c;poped的遍歷…

一篇文章幫你搞定微軟云計算證書Renew

IT證書都有過期的時間&#xff0c;像AWS是3年有效期&#xff0c;谷歌是2年&#xff0c;微軟是1年&#xff0c;那這些證書到期該怎么Renew更新呢&#xff1f; 小李哥最近的微軟AZ-204證書要到期了&#xff0c;到期前半年就會收到Microsoft發來提醒郵件。大家在這半年內任何時間都…

500行代碼實現貪吃蛇(2)

文章目錄 3. 貪吃蛇的具體實現 3. 貪吃蛇的具體實現 首先&#xff0c;我們要讓整個程序適應本地化 int main() {//修改適配本地中文環境setlocale(LC_ALL, "");return 0; }蛇身節點的創建 //蛇身結點的定義 typedef struct SnakeNode {int x; int y;struct SnakeN…

Unity 性能優化之LOD技術(十)

提示&#xff1a;僅供參考&#xff0c;有誤之處&#xff0c;麻煩大佬指出&#xff0c;不勝感激&#xff01; 文章目錄 LOD技術效果一、LOD技術是什么&#xff1f;二、LODGroup組件介紹三、LODGroup組件使用步驟添加組件添加模型 四、Project Settings中與LOD組件相關參數總結 L…