最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

uni-app中使用手機(jī)號(hào)一鍵登錄的詳細(xì)圖文教程

 更新時(shí)間:2023年01月05日 15:22:59   作者:Dcripple  
最近剛接觸了uni-app,用于開發(fā)微信小程序,設(shè)計(jì)到了微信授權(quán)登錄,下面這篇文章主要給大家介紹了關(guān)于uni-app中使用手機(jī)號(hào)一鍵登錄的相關(guān)資料,文中通過圖文介紹的非常詳細(xì),需要的朋友可以參考下

1、首先需要在dcloud開發(fā)者控制臺(tái)開通一鍵登錄

https://dev.dcloud.net.cn/uniLogin

開通一鍵登錄服務(wù), 獲取關(guān)鍵最關(guān)鍵的兩個(gè)參數(shù) ApiKey 和 ApiSecret

真機(jī)調(diào)試無需添加應(yīng)用,如需打包使用請(qǐng)?zhí)砑印R绘I登錄應(yīng)用ID為離線打包時(shí)配置的appid

2、登錄云服務(wù)空間,創(chuàng)建服務(wù)空間,選擇云服務(wù)商等

https://unicloud.dcloud.net.cn/home

3、在uni-app項(xiàng)目中開通uniCloud服務(wù)【關(guān)聯(lián)云空間選擇阿里云或騰訊云】

4、新建云函數(shù)  創(chuàng)建 getPhoneNumber

 新建云函數(shù)后會(huì)有一個(gè)index.js【getPhoneNumber/index.js】生成,粘貼以下代碼:

'use strict';
// const crypto = require('crypto')
exports.main = async (event, context) => {
	//event為客戶端上傳的參數(shù)
	const res = await uniCloud.getPhoneNumber({
		appid: '__UNI__66AWES5', // 替換成自己開通一鍵登錄的應(yīng)用的DCloud appid,使用callFunction方式調(diào)用時(shí)可以不傳(會(huì)自動(dòng)取當(dāng)前客戶端的appid),如果使用云函數(shù)URL化的方式訪問必須傳此參數(shù)
		provider: 'univerify',
		apiKey: '******', // 在開發(fā)者中心開通服務(wù)并獲取apiKey
		apiSecret: '******', // 在開發(fā)者中心開通服務(wù)并獲取apiSecret
		access_token: event.access_token,
		openid: event.openid
	})
 
	// 執(zhí)行用戶信息入庫等操作,正常情況下不要把完整手機(jī)號(hào)返回給前端
	// 如果數(shù)據(jù)庫在uniCloud上,可以直接入庫
	// 如果數(shù)據(jù)庫不在uniCloud上,可以通過 uniCloud.httpclient API,將手機(jī)號(hào)通過http方式傳遞給其他服務(wù)器的接口,詳見:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
	//返回?cái)?shù)據(jù)給客戶端
	return {
		code: 0,
		message: '獲取手機(jī)號(hào)成功',
		data:res
	}
}

5、項(xiàng)目右鍵關(guān)聯(lián)云服務(wù)空間  

選擇創(chuàng)建的云服務(wù)空間

6、關(guān)聯(lián)后上傳部署到云空間 

7、勾選一鍵登錄(項(xiàng)目中的 manifest.json)

8、一鍵登錄本地方法

// 手機(jī)號(hào)一鍵登錄
loginPhone() {
	uni.preLogin({
		provider: 'univerify',
		success(res) { //預(yù)登錄成功
			// 顯示一鍵登錄選項(xiàng)
			console.log(res);
			console.log('999',2222);
			console.log('預(yù)登錄成功');
			uni.login({
				provider: 'univerify',
				univerifyStyle: { // 自定義登錄框樣式
					//參考`univerifyStyle 數(shù)據(jù)結(jié)構(gòu)`
                    "fullScreen": true, // 是否全屏顯示,默認(rèn)值: false
					"title": '快速登錄',
					"backgroundColor": "#ffffff", // 授權(quán)頁面背景顏色,默認(rèn)值:#ffffff
					"icon": {
						"path": "../../static/my/頭像.png" // 自定義顯示在授權(quán)框中的logo,僅支持本地圖片 默認(rèn)顯示App logo
					},
					"phoneNum": {
						"color": "#000000", // 手機(jī)號(hào)文字顏色 默認(rèn)值:#000000
						"fontSize": "18" // 手機(jī)號(hào)字體大小 默認(rèn)值:18
					},
					"slogan": {
						"color": "#8a8b90", //  slogan 字體顏色 默認(rèn)值:#8a8b90
						"fontSize": "12" // slogan 字體大小 默認(rèn)值:12
					},
                    // 一鍵登錄
					"authButton": {
						"normalColor": "#3479f5", // 授權(quán)按鈕正常狀態(tài)背景顏色 默認(rèn)值:#3479f5
						"highlightColor": "#2861c5", // 授權(quán)按鈕按下狀態(tài)背景顏色 默認(rèn)值:#2861c5(僅ios支持)
						"disabledColor": "#73aaf5", // 授權(quán)按鈕不可點(diǎn)擊時(shí)背景顏色 默認(rèn)值:#73aaf5(僅ios支持)
						"textColor": "#ffffff", // 授權(quán)按鈕文字顏色 默認(rèn)值:#ffffff
						"title": "本機(jī)號(hào)碼一鍵登錄" // 授權(quán)按鈕文案 默認(rèn)值:“本機(jī)號(hào)碼一鍵登錄”
					},
                    // 其他登錄方式
					"otherLoginButton": {
						"visible": "true", // 是否顯示其他登錄按鈕,默認(rèn)值:true
						"normalColor": "#f8f8f8", // 其他登錄按鈕正常狀態(tài)背景顏色 默認(rèn)值:#f8f8f8
						"highlightColor": "#dedede", // 其他登錄按鈕按下狀態(tài)背景顏色 默認(rèn)值:#dedede
						"textColor": "#000000", // 其他登錄按鈕文字顏色 默認(rèn)值:#000000
						"title": "密碼登錄", // 其他登錄方式按鈕文字 默認(rèn)值:“其他登錄方式”
						"borderWidth": "1px", // 邊框?qū)挾?默認(rèn)值:1px(僅ios支持)
						"borderColor": "#c5c5c5" //邊框顏色 默認(rèn)值: #c5c5c5(僅ios支持)
					},
                    // 自定義按鈕登錄方式
                    "buttons": { // 僅全屏模式生效,配置頁面下方按鈕  (3.1.14+ 版本支持)  
						"iconWidth": "45px",        // 圖標(biāo)寬度(高度等比例縮放) 默認(rèn)值:45px  
						"list": [{  
							    "provider": "apple",
							    "iconPath": "/static/test.jpg",  // 圖標(biāo)路徑僅支持本地圖片  
						    },  
							{  
								"provider": "weixin",
								"iconPath": "/static/test.jpg",  
							}  
						]  
					},
					"privacyTerms": {
						"defaultCheckBoxState": "true", // 條款勾選框初始狀態(tài) 默認(rèn)值: true
						"textColor": "#8a8b90", // 文字顏色 默認(rèn)值:#8a8b90
						"termsColor": "#1d4788", //  協(xié)議文字顏色 默認(rèn)值: #1d4788
						"prefix": "我已閱讀并同意", // 條款前的文案 默認(rèn)值:“我已閱讀并同意”
						"suffix": "并使用本機(jī)號(hào)碼登錄", // 條款后的文案 默認(rèn)值:“并使用本機(jī)號(hào)碼登錄”
						"fontSize": "12", // 字體大小 默認(rèn)值:12,
						"privacyItems": [
							// 自定義協(xié)議條款,最大支持2個(gè),需要同時(shí)設(shè)置url和title. 否則不生效
							{
								"url": "https://", // 點(diǎn)擊跳轉(zhuǎn)的協(xié)議詳情頁面
								"title": "用戶服務(wù)協(xié)議" // 協(xié)議名稱
							}
						]
					}
				},
				success(res) { // 登錄成功
					console.log(res);
					this.openid = res.authResult.openid;
					this.access_token = res.authResult.access_token;
 
					console.log(this.openid);
					console.log("access_token",this.access_token);
 
 
 
				// 客戶端(調(diào)用云函數(shù))  調(diào)用云函數(shù)來實(shí)現(xiàn)整個(gè)業(yè)務(wù)邏輯
				// 在得到access_token后,通過callfunction調(diào)用云函數(shù)
				uniCloud.callFunction({
					name:"getPhoneNumber",
					data:{
						'openid': this.openid,
						'access_token': this.access_token
					}
				}).then(res=>{
					console.log("獲取成功");
					console.log(res); // res 內(nèi)容則包含手機(jī)號(hào)碼
					// 獲取用戶的手機(jī)號(hào)
					this.phoneNumber=res.result.data.phoneNumber;
					console.log(this.phoneNumber);
					console.log(res);
 
					return utils.request(
						"/api/api.php?action=phonelogin", //接口
						"POST",
					 	{
					 		'參數(shù)'
					 	},
						false, true, true)
					 	.then(res => {
					 		uni.closeAuthView() //成功關(guān)閉授權(quán)頁面
					 		console.log('登錄成功', res)
					 		console.log(res.code);
					 		if (res.code == 1){
								setTimeout(() => {
					 				uni.redirectTo({
					 					url: '/pages/index/index'
					 				})
					 			}, 500)
							}
					 	})
 
				}).catch((err)=>{
					// 執(zhí)行失敗
				})
				},
                // 當(dāng)用戶點(diǎn)擊自定義按鈕時(shí),會(huì)觸發(fā)uni.login的fail回調(diào)[點(diǎn)擊其他登錄方式,可以跳轉(zhuǎn)頁面]
				// 判斷返回?cái)?shù)據(jù)執(zhí)行任意邏輯
				fail(res){  // 登錄失敗
					console.log(res.errCode)
					console.log(res.errMsg)
                    if (res.code == "30002") {
						console.log('密碼登錄');
					}else if(res.code == "30008"){
						console.log('自定義按鈕登錄方式');
					}
				}
			})
		},
		fail(res) { // 預(yù)登錄失敗
			// 不顯示一鍵登錄選項(xiàng)(或置灰)
			// 根據(jù)錯(cuò)誤信息判斷失敗原因,如有需要可將錯(cuò)誤提交給統(tǒng)計(jì)服務(wù)器
			console.log('失敗',2222);
			console.log(res.errCode)
			console.log(res.errMsg)
		}
	});
},

可以查看點(diǎn)擊一鍵登錄時(shí)返回的參數(shù)

總結(jié)

到此這篇關(guān)于uni-app中使用手機(jī)號(hào)一鍵登錄的文章就介紹到這了,更多相關(guān)uni-app手機(jī)號(hào)一鍵登錄內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • webpack構(gòu)建的詳細(xì)流程探底

    webpack構(gòu)建的詳細(xì)流程探底

    目前,幾乎所有業(yè)務(wù)的開發(fā)構(gòu)建都會(huì)用到 webpack 。所以下面這篇文章主要給大家介紹了關(guān)于webpack構(gòu)建的詳細(xì)流程的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起看看吧。
    2018-01-01
  • 微信小程序多列表渲染數(shù)據(jù)開關(guān)互不影響的實(shí)現(xiàn)

    微信小程序多列表渲染數(shù)據(jù)開關(guān)互不影響的實(shí)現(xiàn)

    這篇文章主要介紹了微信小程序多列表渲染數(shù)據(jù)開關(guān)互不影響的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • layui插件表單驗(yàn)證提交觸發(fā)提交的例子

    layui插件表單驗(yàn)證提交觸發(fā)提交的例子

    今天小編就為大家分享一篇layui插件表單驗(yàn)證提交觸發(fā)提交的例子,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-09-09
  • JS畫圖(非VML)--兼容IE/FF

    JS畫圖(非VML)--兼容IE/FF

    JS畫圖(非VML)--兼容IE/FF...
    2006-12-12
  • 小程序?qū)崿F(xiàn)帶年月選取效果的日歷

    小程序?qū)崿F(xiàn)帶年月選取效果的日歷

    這篇文章主要為大家詳細(xì)介紹了小程序?qū)崿F(xiàn)帶年月選取效果的日歷,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 微信小程序開發(fā)搜索功能實(shí)現(xiàn)(前端+后端+數(shù)據(jù)庫)

    微信小程序開發(fā)搜索功能實(shí)現(xiàn)(前端+后端+數(shù)據(jù)庫)

    這篇文章主要介紹了微信小程序開發(fā)搜索功能實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • JS的replace方法

    JS的replace方法

    在javascript中,String的函數(shù)replace()簡(jiǎn)直太讓人喜愛了。它靈活而強(qiáng)大的字符替換處理能力,這里簡(jiǎn)單介紹下,方便需要的朋友
    2013-12-12
  • javascript foreach中如何獲取數(shù)組下標(biāo)/index

    javascript foreach中如何獲取數(shù)組下標(biāo)/index

    這篇文章主要介紹了javascript foreach中如何獲取數(shù)組下標(biāo)/index問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • JavaScript判斷變量數(shù)據(jù)類型的常見方法小結(jié)

    JavaScript判斷變量數(shù)據(jù)類型的常見方法小結(jié)

    在JavaScript開發(fā)中,了解和判斷變量的數(shù)據(jù)類型是編寫健壯代碼的基礎(chǔ),變量的類型可以在運(yùn)行時(shí)改變,這為開發(fā)者帶來了靈活性的同時(shí)也增加了復(fù)雜性,本文將深入探討幾種常見的判斷變量類型的技巧,并結(jié)合實(shí)際案例進(jìn)行分析,需要的朋友可以參考下
    2024-12-12
  • Bootstrap 網(wǎng)格系統(tǒng)布局詳解

    Bootstrap 網(wǎng)格系統(tǒng)布局詳解

    在平面設(shè)計(jì)中,網(wǎng)格是一種由一系列用于組織內(nèi)容的相交的直線(垂直的、水平的)組成的結(jié)構(gòu)(通常是二維的)。這篇文章主要介紹了Bootstrap 網(wǎng)格系統(tǒng)布局,需要的朋友可以參考下
    2017-03-03

最新評(píng)論

汉中市| 车险| 连平县| 博爱县| 东台市| 西华县| 奉节县| 合作市| 镇安县| 娄烦县| 玛曲县| 河南省| 印江| 赫章县| 尼玛县| 诸城市| 阿拉善右旗| 绵竹市| 通化市| 芦山县| 武邑县| 西和县| 崇左市| 甘孜| 南康市| 西乡县| 正定县| 嘉荫县| 中山市| 邮箱| 吴忠市| 肥乡县| 四子王旗| 平谷区| 含山县| 滦南县| 赣州市| 滨州市| 会昌县| 天台县| 友谊县|