国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

微信小程序的登錄流程——代碼詳解

這篇具有很好參考價值的文章主要介紹了微信小程序的登錄流程——代碼詳解。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

小程序登錄流程圖(具體詳情可看官網(wǎng)鏈接):
https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html
小程序可以通過微信官方提供的登錄能力方便地獲取微信提供的用戶身份標識,快速建立小程序內(nèi)的用戶體系。
微信小程序的登錄流程——代碼詳解

前端開發(fā)者需要做的任務(wù)是從小程序到開發(fā)者服務(wù)器這一條線路的工作。
開發(fā)者服務(wù)器到微信接口服務(wù)是后臺人員的解密拿openid和session_key的工作。

1、登錄流程解析
首次登錄:

1、首先需要調(diào)用小程序api接口 wx.login() 獲取 臨時登錄憑證code ,這個code是有過期時間的。
2、將這個code回傳到開發(fā)者服務(wù)器(就是請求開發(fā)者服務(wù)器的登錄接口,通過憑證進而換取用戶登錄態(tài)信息,包括用戶的唯一標識(openid)及本次登錄的會話密鑰(session_key)等)。
3、拿到開發(fā)者服務(wù)器傳回來的會話密鑰(session_key)之后,前端要保存wx.setStorageSync('sessionKey', 'value')

再次登錄的時候,就要判斷存儲的session_key是否過期了:
1、獲取緩存中的session_key,wx.getStorageSync('sessionKey')
2、如果緩存中存在session_key,那么調(diào)用小程序api接口wx.checkSession()來判斷登錄態(tài)是否過期,回調(diào)成功說明當前 session_key 未過期,回調(diào)失敗說明 session_key 已過期。登錄態(tài)過期后前端需要再調(diào)用 wx.login()獲取新的用戶的code,然后再向開發(fā)者服務(wù)器發(fā)起登錄請求。
3、一般在項目開發(fā),開發(fā)者服務(wù)器也會對用戶的登錄態(tài)做過期限制,所以這時在判斷完微信服務(wù)器中登錄態(tài)如果沒有過期之后還要判斷開發(fā)者服務(wù)器的登錄態(tài)是否過期。(請求開發(fā)者服務(wù)器給定的接口進行請求判斷就好)。
4、無論是微信服務(wù)器過期了還是開發(fā)者服務(wù)器登錄態(tài)過期了,都要像首次登錄那樣開始三步驟。所以注意封裝代碼。

wx.checkSession()詳情了解:
https://developers.weixin.qq.com/miniprogram/dev/api/wx.checkSession.html

2、代碼封裝解析
通過上面的文字解析,我們把登錄流程進行封裝:

?

/**
* 用戶相關(guān)服務(wù) 登陸,檢查登錄態(tài)
*/
const api = require('api.js');  // 這里是本人對統(tǒng)一接口地址封裝
import {
HTTP
} from 'http.js'  // 這個是本人對wx.request()這個api進行了封裝

// 一般都把登錄代碼封裝為一個類,然后export 類出去。當多個組件使用到的時候就繼承這個類就可以使用登錄接口了。
class USER extends HTTP {  

/**
* Promise封裝登錄接口
* 判斷本地緩存是否有sessionKey
* 有的情況下判斷它是否過期
* **如果微信服務(wù)器沒過期,繼續(xù)從開發(fā)者服務(wù)器校驗是否過期
* ****如果沒過期,跳過登錄,過期則調(diào)用登錄接口
* **如果微信服務(wù)器登錄態(tài)過期,則調(diào)用登錄接口
* 沒有則說明無登錄態(tài),調(diào)用登錄接口
*/
login() {
return new Promise((resolve, reject) => {
	let sessionKey = wx.getStorageSync('sessionKey')
	if (sessionKey) {
		console.log('sessionKey不為空')
		this._checkWXSession() //檢查用戶的登錄態(tài)在微信服務(wù)端是否過期
		.then(() => {
			console.log('微信后臺未過期>>>開始檢測開發(fā)者服務(wù)器登錄態(tài)')
			return this._checkSerSession() // 檢查用戶登錄態(tài)在開發(fā)者服務(wù)器端是否過期
		}).then(res => {
			console.log('sessionKey校驗通過')
			resolve()
		})
		.catch((res) => {
			console.log('sessionKey校驗未通過,過期了')
			this._wxLogin().then(res => {
				console.log(res)
				return this._serLogin(res.code)
			}).then(() => {
				resolve()
			})
		})
	} else {
		console.log('sessionKey為空,先微信服務(wù)器登錄,再進行開發(fā)者服務(wù)器登錄')
		this._wxLogin().then(res => {
			console.log(res)
			return this._serLogin(res.code)
		}).then(() => {
			resolve()
		})
	}
})
}

檢查微信服務(wù)器登錄態(tài)是否過期的代碼封裝:

/**
* Promise封裝wx.checkSession(),檢查微信服務(wù)器登錄態(tài)是否過期
*/
_checkWXSession() {
	return new Promise((resolve, reject) => {
		wx.checkSession({
			success: () => {
				resolve(true)
			},
			fail: () => {
				reject(false)
			}
		})
	})
}

檢查開發(fā)者服務(wù)器登錄態(tài)的代碼封裝:

/**
* Promise封裝開發(fā)者服務(wù)器sessionKey,檢查開發(fā)者服務(wù)器登錄態(tài)
*/
_checkSerSession() {
	return new Promise((resolve, reject) => {
		this.request({
			url: api.checkSession,
			header: {
			sessionKey: wx.getStorageSync('sessionKey')
			},
			method: 'POST'
			})
		.then(res => {
			resolve(res);
		})
		.catch(res => {
			reject(res)
			console.log('后臺登錄態(tài)過期')
		})
	})
}

wx.login()微信登錄接口api的封裝

/**
* Promise封裝wx.login
*/
_wxLogin() {
	return new Promise((resolve, reject) => {
		wx.login({
			success: (res) => {
				if (res.code) {
					resolve(res);
				} 
				else {
					reject(res);
				}
			},
			fail: (err) => {
				reject(err);
			}
		})
	})
}

開發(fā)者服務(wù)器請求接口登錄的封裝文章來源地址http://www.zghlxwxcb.cn/news/detail-492416.html

/**
* Promise封裝開發(fā)者服務(wù)器登陸(獲取登錄后的sessionKey)
*/
_serLogin(code) {
	return new Promise((resolve, reject) => {
		this.request({
			url: api.login,
			data: {
			code: code
			},
			method: 'post'
			})
		.then(res => {
			wx.setStorageSync('sessionKey', res.data)
			console.log('登錄成功的回調(diào)')
			resolve()
			})
		.catch(err => {
			this._show_error('開發(fā)者服務(wù)器登錄失敗')  //這個是消息提示框,在請求中封裝了,這里簡單理解錯誤彈出消息提示。
		})
	})
}

到了這里,關(guān)于微信小程序的登錄流程——代碼詳解的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔相關(guān)法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 微信小程序的登錄流程

    1.使用完整服務(wù)也就是用戶登錄并且允許獲取頭像和昵稱的時候,微信小程序通過方法wx.login獲取到code(5 分鐘內(nèi)有效),攜帶code、appid和appSecret發(fā)送請求到服務(wù)器端; 2.服務(wù)器端利用appId、appSecret 和code調(diào)用相對應(yīng)的接口(auth.code2Session)發(fā)送請求到微信官方服務(wù)器進行校驗,

    2024年02月09日
    瀏覽(24)
  • 微信小程序授權(quán)登錄流程

    微信小程序授權(quán)登錄流程

    我是IT果果日記,微信公眾號請搜索 IT果果日記 一個普通的技術(shù)宅,定期分享技術(shù)文章,歡迎點贊、關(guān)注和轉(zhuǎn)發(fā),請多關(guān)照。 首先, 我們要了解什么是微信小程序登錄?它的作用是什么? 微信小程序登錄是為了讓開發(fā)者的服務(wù)器獲取用戶的openId以及session_key的令牌。 請不要

    2024年02月14日
    瀏覽(89)
  • 微信小程序的微信登錄流程

    微信小程序的微信登錄流程

    目錄 1、登錄流程 2、wx.login 3、auth.code2Session ??作者介紹:雙非本科大三網(wǎng)絡(luò)工程專業(yè)在讀,阿里云專家博主,專注于Java領(lǐng)域?qū)W習,擅長web應(yīng)用開發(fā)、數(shù)據(jù)結(jié)構(gòu)和算法,初步涉獵Python人工智能開發(fā)和前端開發(fā)。 ??主頁:@逐夢蒼穹 ??所屬專欄:前端 ??您的一鍵三連,是我

    2024年02月22日
    瀏覽(32)
  • 【微信小程序】授權(quán)登錄流程解析

    【微信小程序】授權(quán)登錄流程解析

    ? 目錄 微信授權(quán)登錄流程 1.?官方圖示流程詳解 2. 代碼登錄流程拆解 2.1 前端代碼示例講解 2.2 后端代碼示例講解 2.3 代碼登錄流程拆解 ?? 3. 表情包存儲展示(擴展) 附議? ① 微信服務(wù)器驗證: 當用戶打開小程序時,小程序會向用戶展示登錄按鈕,用戶點擊登錄按鈕后,小

    2024年02月08日
    瀏覽(19)
  • 微信小程序登錄流程與實現(xiàn)

    微信小程序登錄流程與實現(xiàn)

    在了解小程序登錄之前,請大家先了解小程序的全局實例和全局組件,以方便理解本文的后續(xù)內(nèi)容,已經(jīng)了解的可以直接開始。 全局實例和全局組件( ?? 點擊直達) 微信小程序的登錄流程 微信小程序的登錄 首先需要寫一個微信小程序的登錄彈窗,登錄彈窗的作用就是發(fā)起

    2024年02月16日
    瀏覽(15)
  • 說說微信小程序的登錄流程?

    說說微信小程序的登錄流程?

    傳統(tǒng)的 web 開發(fā)實現(xiàn)登陸功能,一般的做法是輸入賬號密碼、或者輸入手機號及短信驗證碼進行登錄 服務(wù)端校驗用戶信息通過之后,下發(fā)一個代表登錄態(tài)的 token 給客戶端,以便進行后續(xù)的交互,每當 token 過期,用戶都需要重新登錄 而在微信小程序中,可以通過微信官方提供的

    2024年02月20日
    瀏覽(23)
  • 微信小程序三種授權(quán)登錄以及授權(quán)登錄流程講解

    微信小程序三種授權(quán)登錄以及授權(quán)登錄流程講解

    ????歡迎來到我的CSDN主頁!???? ??我是Java方文山,一個在CSDN分享筆記的博主。???? ??推薦給大家我的專欄《 微信小程序開發(fā)實戰(zhàn) 》。???? ??點擊這里,就可以查看我的主頁啦!???? Java方文山的個人主頁 ??如果感覺還不錯的話請給我點贊吧!???? ??期待你

    2024年02月08日
    瀏覽(17)
  • 微信小程序&會議OA-登錄獲取手機號流程&登錄-小程序&導入微信小程序SDK(從微信小程序和會議OA登錄獲取手機號到登錄小程序?qū)胛⑿判〕绦騍DK)

    微信小程序&會議OA-登錄獲取手機號流程&登錄-小程序&導入微信小程序SDK(從微信小程序和會議OA登錄獲取手機號到登錄小程序?qū)胛⑿判〕绦騍DK)

    目錄 獲取用戶昵稱頭像和昵稱 wx.getUserProfile bindgetuserinfo 登錄過程 登錄-小程序 wx.checkSession wx.login wx.request 后臺 準備數(shù)據(jù)表 反向生成工具生成 準備封裝前端傳過來的數(shù)據(jù) 小程序服器配置 導入微信小程序SDK application.yml WxProperties WxConfig WxAuthController 登錄-小程序 login.js user.j

    2024年02月04日
    瀏覽(25)
  • mpVue 微信小程序授權(quán)登錄流程(即登錄鑒權(quán)流程)及獲取手機號一鍵登錄教程(getPhoneNumber使用)

    mpVue 微信小程序授權(quán)登錄流程(即登錄鑒權(quán)流程)及獲取手機號一鍵登錄教程(getPhoneNumber使用)

    微信小程序登錄 鑒權(quán)流程 如下: 因 wx.getUserProfile 與 wx.getUserInfo 接口被收回了,都不能彈出授權(quán)窗口,只能使用頭像昵稱填寫能力去獲取微信用戶信息。 在鑒權(quán)頁面如下操作 : 1、在 onShow 中調(diào)用微信登錄 wx.login 獲取到唯一的code(用來獲取 openid ); 2、根據(jù) wx.login 獲取的c

    2024年02月12日
    瀏覽(28)
  • 微信小程序 之 微信登錄(詳解)

    微信小程序 之 微信登錄(詳解)

    微信登錄:小程序登錄 | 微信開放文檔 ? 步驟分析: 之后開發(fā)者服務(wù)器可以根據(jù)用戶標識來生成自定義登錄態(tài),用于后續(xù)業(yè)務(wù)邏輯中前后端交互時識別用戶身份。 小程序端,調(diào)用wx.login()獲取code,就是授權(quán)碼。 小程序端,調(diào)用wx.request()發(fā)送請求并攜帶code,請求開發(fā)者服務(wù)器

    2024年02月08日
    瀏覽(19)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包