在uni-app中使用手机号一键登录

这篇具有很好参考价值的文章主要介绍了在uni-app中使用手机号一键登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、首先需要在dcloud开发者控制台开通一键登录

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

开通一键登录服务, 获取关键最关键的两个参数 ApiKey 和 ApiSecret

在uni-app中使用手机号一键登录

真机调试无需添加应用,如需打包使用请添加。一键登录应用ID为离线打包时配置的appid

在uni-app中使用手机号一键登录

 2、登录云服务空间,创建服务空间,选择云服务商等

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

在uni-app中使用手机号一键登录

3、在uni-app项目中开通uniCloud服务【关联云空间选择阿里云或腾讯云】

 在uni-app中使用手机号一键登录

4、新建云函数  创建 getPhoneNumber

 在uni-app中使用手机号一键登录

 新建云函数后会有一个index.js【getPhoneNumber/index.js】生成,粘贴以下代码:

'use strict';
// const crypto = require('crypto')
exports.main = async (event, context) => {
	//event为客户端上传的参数
	const res = await uniCloud.getPhoneNumber({
		appid: '__UNI__66AWES5', // 替换成自己开通一键登录的应用的DCloud appid,使用callFunction方式调用时可以不传(会自动取当前客户端的appid),如果使用云函数URL化的方式访问必须传此参数
		provider: 'univerify',
		apiKey: '******', // 在开发者中心开通服务并获取apiKey
		apiSecret: '******', // 在开发者中心开通服务并获取apiSecret
		access_token: event.access_token,
		openid: event.openid
	})

	// 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端
	// 如果数据库在uniCloud上,可以直接入库
	// 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://uniapp.dcloud.net.cn/uniCloud/cf-functions?id=httpclient
	//返回数据给客户端
	return {
		code: 0,
		message: '获取手机号成功',
		data:res
	}
}

5、项目右键关联云服务空间  

在uni-app中使用手机号一键登录

选择创建的云服务空间

在uni-app中使用手机号一键登录

6、关联后上传部署到云空间 

在uni-app中使用手机号一键登录

7、勾选一键登录(项目中的 manifest.json)

在uni-app中使用手机号一键登录

8、一键登录本地方法

// 手机号一键登录
loginPhone() {
	uni.preLogin({
		provider: 'univerify',
		success(res) { //预登录成功
			// 显示一键登录选项
			console.log(res);
			console.log('999',2222);
			console.log('预登录成功');
			uni.login({
				provider: 'univerify',
				univerifyStyle: { // 自定义登录框样式
					//参考`univerifyStyle 数据结构`
                    "fullScreen": true, // 是否全屏显示,默认值: false
					"title": '快速登录',
					"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
					"icon": {
						"path": "../../static/my/头像.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
					},
					"phoneNum": {
						"color": "#000000", // 手机号文字颜色 默认值:#000000
						"fontSize": "18" // 手机号字体大小 默认值:18
					},
					"slogan": {
						"color": "#8a8b90", //  slogan 字体颜色 默认值:#8a8b90
						"fontSize": "12" // slogan 字体大小 默认值:12
					},
                    // 一键登录
					"authButton": {
						"normalColor": "#3479f5", // 授权按钮正常状态背景颜色 默认值:#3479f5
						"highlightColor": "#2861c5", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)
						"disabledColor": "#73aaf5", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)
						"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
						"title": "本机号码一键登录" // 授权按钮文案 默认值:“本机号码一键登录”
					},
                    // 其他登录方式
					"otherLoginButton": {
						"visible": "true", // 是否显示其他登录按钮,默认值:true
						"normalColor": "#f8f8f8", // 其他登录按钮正常状态背景颜色 默认值:#f8f8f8
						"highlightColor": "#dedede", // 其他登录按钮按下状态背景颜色 默认值:#dedede
						"textColor": "#000000", // 其他登录按钮文字颜色 默认值:#000000
						"title": "密码登录", // 其他登录方式按钮文字 默认值:“其他登录方式”
						"borderWidth": "1px", // 边框宽度 默认值:1px(仅ios支持)
						"borderColor": "#c5c5c5" //边框颜色 默认值: #c5c5c5(仅ios支持)
					},
                    // 自定义按钮登录方式
                    "buttons": { // 仅全屏模式生效,配置页面下方按钮  (3.1.14+ 版本支持)  
						"iconWidth": "45px",        // 图标宽度(高度等比例缩放) 默认值:45px  
						"list": [{  
							    "provider": "apple",
							    "iconPath": "/static/test.jpg",  // 图标路径仅支持本地图片  
						    },  
							{  
								"provider": "weixin",
								"iconPath": "/static/test.jpg",  
							}  
						]  
					},
					"privacyTerms": {
						"defaultCheckBoxState": "true", // 条款勾选框初始状态 默认值: true
						"textColor": "#8a8b90", // 文字颜色 默认值:#8a8b90
						"termsColor": "#1d4788", //  协议文字颜色 默认值: #1d4788
						"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
						"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
						"fontSize": "12", // 字体大小 默认值:12,
						"privacyItems": [
							// 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
							{
								"url": "https://", // 点击跳转的协议详情页面
								"title": "用户服务协议" // 协议名称
							}
						]
					}
				},
				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);



				// 客户端(调用云函数)  调用云函数来实现整个业务逻辑
				// 在得到access_token后,通过callfunction调用云函数
				uniCloud.callFunction({
					name:"getPhoneNumber",
					data:{
						'openid': this.openid,
						'access_token': this.access_token
					}
				}).then(res=>{
					console.log("获取成功");
					console.log(res); // res 内容则包含手机号码
					// 获取用户的手机号
					this.phoneNumber=res.result.data.phoneNumber;
					console.log(this.phoneNumber);
					console.log(res);

					return utils.request(
						"/api/api.php?action=phonelogin", //接口
						"POST",
					 	{
					 		'参数'
					 	},
						false, true, true)
					 	.then(res => {
					 		uni.closeAuthView() //成功关闭授权页面
					 		console.log('登录成功', res)
					 		console.log(res.code);
					 		if (res.code == 1){
								setTimeout(() => {
					 				uni.redirectTo({
					 					url: '/pages/index/index'
					 				})
					 			}, 500)
							}
					 	})

				}).catch((err)=>{
					// 执行失败
				})
				},
                // 当用户点击自定义按钮时,会触发uni.login的fail回调[点击其他登录方式,可以跳转页面]
				// 判断返回数据执行任意逻辑
				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) { // 预登录失败
			// 不显示一键登录选项(或置灰)
			// 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器
			console.log('失败',2222);
			console.log(res.errCode)
			console.log(res.errMsg)
		}
	});
},

 在uni-app中使用手机号一键登录

在uni-app中使用手机号一键登录

可以查看点击一键登录时返回的参数

在uni-app中使用手机号一键登录

两个注意点补充下:文章来源地址https://www.toymoban.com/news/detail-422327.html

  • 真机测试的时候选择标准基座,不可以选择自定义基座否则会提醒没添加oauth模块
  • 使用云函数做一键登录时,优先使用云端函数

到了这里,关于在uni-app中使用手机号一键登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 手机号一键授权登录页面

        源码地址:https://ext.dcloud.net.cn/plugin?id=12272

    2024年02月03日
    浏览(42)
  • mpVue 微信小程序授权登录流程(即登录鉴权流程)及获取手机号一键登录教程(getPhoneNumber使用)

    微信小程序登录 鉴权流程 如下: 因 wx.getUserProfile 与 wx.getUserInfo 接口被收回了,都不能弹出授权窗口,只能使用头像昵称填写能力去获取微信用户信息。 在鉴权页面如下操作 : 1、在 onShow 中调用微信登录 wx.login 获取到唯一的code(用来获取 openid ); 2、根据 wx.login 获取的c

    2024年02月12日
    浏览(49)
  • uniapp实现手机号一键登录功能

    1,第一步 2,第二步 创建应用要和项目uni-appid一致。 3,第三步 4,第四步 5,第五步 6,第六步 7,第七步 8,第八步 (实现代码) 一建登录步骤到此结束,欢迎大家讨论和指导,登录弹窗本文设置的是全屏‘fullScreen’,大家可根据需求编辑,弹窗只能在手机端app才能显示。

    2024年02月16日
    浏览(33)
  • 微信小程序静默登录+一键手机号绑定

    //在app.js里有小程序写好的模板,直接调用既可 //后端代码逻辑如下 1.先接收到小程序端传过来的code 2然后微信开发文档获取到你的appid和screct https://mp.weixin.qq.com/ 3接着获取到你的sppid,和 session_key,去库里查看是否有sppid一样的用户,如果有更新session_key,如果没有就将你获取到

    2024年02月09日
    浏览(37)
  • 小程序获取手机号和用户信息一键登录

    1、一建获取用户信息 以前可以通过 button open-type=\\\"getUserInfo\\\" 一键登录/button 来实现一建获取用户信息; 2021年4月28日24时后发布的小程序新版本,无法通过wx.getUserInfo与获取用户个人信息(头像、昵称、性别与地区) 新增 getUserProfile 接口(基础库2.10.4版本开始支持),可获取

    2024年02月09日
    浏览(36)
  • uniapp 实现微信小程序手机号一键登录

    app 和 h5 手机号一键登录,参考文档:uni-app官网 以下是uniapp 实现微信小程序手机号一键登录 1、布局

    2024年02月03日
    浏览(43)
  • Taro:微信小程序通过获取手机号实现一键登录

            本文介绍如果通过微信小程序的getPhoneNumber方法获取用户微信绑定的手机号并自动注册登录。 1、按钮类型 openType 指定 \\\"getPhoneNumber\\\"   2、@getphonenumber必须全部小写 code:手机号获取凭证:动态令牌。可通过动态令牌换取用户手机号。         后台根据前端传入

    2024年02月16日
    浏览(38)
  • 基于vue2的uniapp 微信一键登录,获取手机号

    基于vue2的uniapp商城项目中的微信一键登录功能 (后台是node.js写的) 目前文档中该接口针对非个人开发者,所以只能用文档中提供的测试号实现一下功能。 我在实现微信一键登录的时候,获取手机号总是失败。 我浏览的是微信小程序的文档微信小程序开发文档 实现获取手机

    2024年02月09日
    浏览(44)
  • uniapp小程序 手机号授权一键登录 小程序接口调用getPhoneNumber java+uniapp

    uniapp 前端 uniapp登录按钮: (在button加上这俩个参数) open-type=\\\"getPhoneNumber\\\" @getphonenumber=\\\"getPhoneNumber\\\" methods方法区 getPhoneNumbe(e) 这个 e 就是登录用户 小程序的code值 code值后续用于请求 小程序官方接口 来获取用户手机号 后端调用逻辑  大致逻辑分为以下几个步骤            

    2024年02月02日
    浏览(43)
  • uni-app中使用微信一键登录

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 前言 一、微信一键登录是什么? 二、使用步骤 1.在onLoad获取用户登录信息code 2.编写页面button按钮          3.根据pen-type=\\\"getPhoneNumber\\\"获取的用户信息传值给后端 总结 在uni-app中使用微信一键登录分析和

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包