位置: IT常识 - 正文

在uni-app中使用手机号一键登录(uni-app实战教程)

编辑:rootadmin
在uni-app中使用手机号一键登录 1、首先需要在dcloud开发者控制台开通一键登录

推荐整理分享在uni-app中使用手机号一键登录(uni-app实战教程),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:uni-app实例教程,在uniapp中使用MySQL数据库,在uniapp中使用scss需要,在uniapp中使用什么进行选择图片,在uniapp中使用vue3需要注意什么,在uniapp中使用的语言是,在uniapp中使用什么进行选择图片,在uniapp中使用什么进行选择图片,内容如对您有帮助,希望把文章链接给更多的朋友!

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

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

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

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

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

3、在uni-app项目中开通uniCloud服务【关联云空间选择阿里云或腾讯云】在uni-app中使用手机号一键登录(uni-app实战教程)

 

4、新建云函数  创建 getPhoneNumber

 

 新建云函数后会有一个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: '******', // 在开发者中心开通服务并获取apiKeyapiSecret: '******', // 在开发者中心开通服务并获取apiSecretaccess_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、项目右键关联云服务空间  

选择创建的云服务空间

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

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

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)}});},

 

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

本文链接地址:https://www.jiuchutong.com/zhishi/294576.html 转载请保留说明!

上一篇:原生微信小程序/uniapp使用空格占位符无效解决方法(原生微信小程序面试题)

下一篇:【华为OD机试真题】1115 - 查找单入口空闲区域(JAVA C++ Python JS) | 机试题+算法思路+考点+代码分析(华为od机试成绩什么时候出来)

  • 腾讯视频客户端怎么截屏(下载腾讯视频客户端)

    腾讯视频客户端怎么截屏(下载腾讯视频客户端)

  • pressdeltorunsetup是什么意思

    pressdeltorunsetup是什么意思

  • 华为手机手机怎么调日期(华为手机手机怎么换到另一个手机)

    华为手机手机怎么调日期(华为手机手机怎么换到另一个手机)

  • vivo手机可以测体温吗(vivo手机可以测血氧吗?)

    vivo手机可以测体温吗(vivo手机可以测血氧吗?)

  • 小米cc9机身多长厘米(小米cc9手机尺寸长,宽多少)

    小米cc9机身多长厘米(小米cc9手机尺寸长,宽多少)

  • qq正在输入触发条件(qq正在输入触发怎么取消)

    qq正在输入触发条件(qq正在输入触发怎么取消)

  • 函数信号发生器有什么作用(函数信号发生器的使用禁忌)

    函数信号发生器有什么作用(函数信号发生器的使用禁忌)

  • 金士顿内存条怎么看大小(金士顿内存条怎么看生产日期)

    金士顿内存条怎么看大小(金士顿内存条怎么看生产日期)

  • 路由器不亮灯也不能上网怎么回事(路由器不亮灯也搜不到信号)

    路由器不亮灯也不能上网怎么回事(路由器不亮灯也搜不到信号)

  • 桌面cpu和移动cpu对比(桌面cpu和移动cpu对比天梯图)

    桌面cpu和移动cpu对比(桌面cpu和移动cpu对比天梯图)

  • ios13.3适合8p吗(8p用13.6怎么样)

    ios13.3适合8p吗(8p用13.6怎么样)

  • 抖音发私信有限制吗(抖音私信数量限制与什么有关)

    抖音发私信有限制吗(抖音私信数量限制与什么有关)

  • 华为怎么设置悬浮导航(华为怎么设置悬浮键盘)

    华为怎么设置悬浮导航(华为怎么设置悬浮键盘)

  • vivos1是不是闪充(vivos1手机闪充模式怎么开启)

    vivos1是不是闪充(vivos1手机闪充模式怎么开启)

  • nd:yag激光叫什么激光(nd:yag激光叫什么激光中文)

    nd:yag激光叫什么激光(nd:yag激光叫什么激光中文)

  • 淘宝上的物流地图准吗(淘宝上的物流地图是真的吗)

    淘宝上的物流地图准吗(淘宝上的物流地图是真的吗)

  • 全民k歌动态删除怎么恢复(全民k歌动态删了以后)

    全民k歌动态删除怎么恢复(全民k歌动态删了以后)

  • 华为关闭降噪功能设置(华为手机如何关闭降噪功能)

    华为关闭降噪功能设置(华为手机如何关闭降噪功能)

  • 手机8g内存和12g内存区别(手机8g内存和12g内存)

    手机8g内存和12g内存区别(手机8g内存和12g内存)

  • 抖音蓝v怎么申请(抖音蓝V怎么申请员工号)

    抖音蓝v怎么申请(抖音蓝V怎么申请员工号)

  • 天猫手机如何投诉卖家(天猫手机如何投屏电视)

    天猫手机如何投诉卖家(天猫手机如何投屏电视)

  • 赖格莱兴的Wachsenburg城堡,德国图林根州 (© Raimund Linke/Masterfile)(赖格宝视频)

    赖格莱兴的Wachsenburg城堡,德国图林根州 (© Raimund Linke/Masterfile)(赖格宝视频)

  • 【JavaWeb】复习重点内容(javaweb重点知识总结)

    【JavaWeb】复习重点内容(javaweb重点知识总结)

  • 税务问答网站
  • 新成立小规模纳税人开发票如何办理
  • 公司无偿更换产品账务如何处理
  • 企业的内部银行
  • 以前年度少计提费用
  • 表外负债和表内负债对比
  • 社保代理公司的合作协议
  • 营改增增值税优惠政策
  • 购销合同印花税优惠政策
  • 股票持有多久可以打新股
  • 免抵调增值税是否缴纳附加税
  • 企业境外付款流程
  • 企业所得税税负怎么算
  • 企业从事生产经营活动时所持有的基本信念
  • 2020年运费发票备注栏新规定
  • 什么收入不需要交税0税
  • 原材料入库如何分类
  • 押金收不回来了怎么处理
  • 生产车间购入材料会计分录
  • 存在标的资产的亏损合同,先进行减值
  • 四种存款账户的定义
  • 进项税税额抵扣
  • 发票认证了但是没收到票怎么处理
  • 今天春节是什么生肖
  • 公司中奖要交税吗
  • 其他应收款和其他应付款常常被用作抵消
  • 资本化计入
  • Symfony学习十分钟入门经典教程
  • laravel启动流程
  • 【swinUnet官方代码测试自己的数据集(已训练完毕)】
  • 计提的附加税
  • php引用类型
  • php有哪些
  • php购物车及订单思路
  • php读取php文件内容
  • php sleep函数
  • 中小企业内部分析
  • dmsetup remove_all 会不会清掉数据
  • ps大型文件储存位置在哪
  • ps黑白怎么调
  • zarchiver 小米
  • 发行债券支付的费用要减吗
  • html+css网页设计
  • 填写发票票种核实怎么填
  • docker安装redis设置密码无效
  • 待抵扣进项税额转出会计分录
  • 试用产品的账务处理分录
  • 车险 保险金额
  • 公司收到社保局的提醒函怎么办
  • 房地产开发公司注册资金要求
  • 汇算清缴需要传票么
  • 样品费计入
  • 供货商少开发票如何记账?
  • 差旅费出差补助标准
  • 欠钱打官司后利息怎么算
  • 减免的增值税要交所得税吗
  • 其他应收款收不回来了,如何核销
  • 财务预算编制方法包括
  • sqlserver全文索引
  • mysql锁表的sql
  • sql中nullif
  • navicat连接mysql时出现1045错误的解决方法
  • xp系统打印任务一闪就没有了
  • ubuntu中怎么卸载软件
  • windows server2012安装完没有桌面
  • babylon.exe进程有什么作用 babylon进程是什么文件
  • windowsqq截屏
  • rundll32找不到文件
  • centos为什么没有桌面
  • win7休眠模式在哪
  • winxp不能正常启动
  • linux中qq怎么添加快捷键启动功能?
  • css框架结构
  • 获取控件的值
  • jQuery.uploadify文件上传组件实例讲解
  • 商场销售高档化妆品需要缴纳消费税吗
  • 农村饮水扶持资金申请报告
  • 珠海市高新区国土局局长
  • 土地增值税采取什么税率
  • 开原航天医院官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设