uniapp微信小程序授权登录实现

我们在做小程序的时候用的最多的方式登录 就是原生的授权登录的功能 

这个方法 也不是很难  首先我们要获取我们在小程序中的code值

我们小封装一个获取code 的方法 在页面中可以直接调用 封装在 js 中

export const wxlogin = () => {return new Promise((resolve, reject) => {uni.login({provider: 'weixin',success: function(loginRes) {resolve(loginRes.code);},fail(err) {reject(err)}})})
}

把登录的要封装在一个单独的文件中,这样修改的时候,也方便修改

<template><view class="province_box" v-if="isPopupVisible"><view class="container"><view class="popupMobile_box"><view class="please-mobile">请授权手机号并登录</view><view class="login_mobile">登录就代表已阅读并同意 <text style="color:#0091FF;">《用户隐私协议》</text></view><view class="popup-action"><view class="action-button" @click="onCloseAuthMobile">取消</view><view><button class="action-confirm" @click="onConfirmAuthMobile" open-type="getPhoneNumber"@getphonenumber="getPhoneNumber" hover-class="none">授权手机号</button></view></view></view></view></view>
</template><script>import {wxlogin} from '@/utils/wxlogin.js'export default {data() {return {wxPhoneParams: {authCode: "",iv: "",encryptedData: ""},isPopupVisible: false, // 初始状态为隐藏}},mounted() {this.towxlogin()},methods: {onOpenAuthMobile() {this.isPopupVisible = true; // 打开弹窗},async onShowAuthMobile() {await this.towxlogin();this.onOpenAuthMobile()},// 获取code 值async towxlogin() {let code = await wxlogin();this.wxPhoneParams.authCode = code;},//取消授权onCloseAuthMobile() {this.isPopupVisible = false; // 关闭弹窗},onConfirmAuthMobile() {this.isPopupVisible = false; // 关闭弹窗},//微信登录getPhoneNumber(e) {if (e.detail.iv && e.detail.encryptedData) {this.wxPhoneParams.iv = e.detail.ivthis.wxPhoneParams.encryptedData = e.detail.encryptedDatathis.wxMobileLogin(this.wxPhoneParams)}},wxMobileLogin(wxParams) {console.log('登陆中....')// 这个里面就可以调用登录的时候传入的接口}}}
</script><style scoped lang="less">.province_box {position: fixed;top: 0;left: 0;width: 100%;height: 100%;background-color: rgba(0, 0, 0, 0.5);z-index: 999;}.container {background-color: #fff;border-radius: 8px 8px 0 0;width: 100%;max-width: 400px;position: absolute;bottom: 0;left: 50%;transform: translateX(-50%);box-sizing: border-box;padding-bottom: constant(safe-area-inset-bottom);padding-bottom: env(safe-area-inset-bottom);}.popupMobile_box {background-color: #fff;height: 380rpx;border-radius: 30rpx 30rpx 0 0;}.please-mobile {text-align: center;padding: 50rpx 0 30rpx;font-size: 34rpx;color: #000;}.login_mobile {text-align: center;font-size: 32rpx;color: #333;}.popup-action {display: flex;align-items: center;justify-content: space-between;margin: 70rpx 100rpx 0;.action-button {width: 240rpx;height: 80rpx;font-size: 32rpx;font-weight: 600;color: #9f9f9f;line-height: 80rpx;border: 1rpx solid #DFDFDF;text-align: center;border-radius: 10rpx;}.action-confirm {background: #0091FF;color: #fff;width: 240rpx;height: 80rpx;font-size: 32rpx;line-height: 80rpx;text-align: center;border-radius: 10rpx;}button {border-radius: 0rpx;}button:after {border: none;}}
</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/46240.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

骑士人才系统74cms专业版实现本地VUE打包和在线升级方法以及常见问题

骑士人才系统我就不多说了目前来说我接触的人才系统里面除了phpyun就是骑士人才了&#xff0c;两个历史都很悠久&#xff0c;总起来说功能方面各分伯仲&#xff0c;前几期我作过Phpyun的配置教程这次我们针对骑士人才系统说说怎么使用VUE源码本地一键打包后台和在线升级方式&am…

展开说说:Android之View基础知识解析

View虽不属于Android四代组件&#xff0c;但应用程度却非常非常广泛。在Android客户端&#xff0c;君所见之处皆是View。我们看到的Button、ImageView、TextView等等可视化的控件都是View&#xff0c;ViewGroup是View的子类因此它也是View。但是现在我们把View和ViewGroup当成两…

每日Attention学习10——Scale-Aware Modulation

模块出处 [ICCV 23] [link] [code] Scale-Aware Modulation Meet Transformer 模块名称 Scale-Aware Modulation (SAM) 模块作用 改进的自注意力 模块结构 模块代码 import torch import torch.nn as nn import torch.nn.functional as Fclass SAM(nn.Module):def __init__…

redisTemplate报错为nil,通过redis-cli查看前缀有乱码

public void set(String key, String value, long timeout) {redisTemplate.opsForValue().set(key, value, timeout, TimeUnit.SECONDS);} 改完之后 public void set(String key, String value, long timeout) {redisTemplate.setKeySerializer(new StringRedisSerializer()…

设计模式--工厂设计模式

什么是工厂模式&#xff1f; 工厂模式是一种创建型设计模式&#xff0c;它定义了一个用于创建对象的接口&#xff0c;但由子类决定要实例化的类是哪一个。这样&#xff0c;工厂方法模式让类的实例化延迟到子类。通过工厂方法模式&#xff0c;我们可以在不修改现有代码的情况下…

opencascade AIS_InteractiveContext源码学习8 trihedron display attributes

AIS_InteractiveContext 前言 交互上下文&#xff08;Interactive Context&#xff09;允许您在一个或多个视图器中管理交互对象的图形行为和选择。类方法使这一操作非常透明。需要记住的是&#xff0c;对于已经被交互上下文识别的交互对象&#xff0c;必须使用上下文方法进行…

数据湖仓一体(五)安装spark

上传安装包到/opt/software目录并解压 [bigdatanode106 software]$ tar -zxvf spark-3.3.1-bin-hadoop3.tgz -C /opt/services/ 重命名文件 [bigdatanode106 services]$ mv spark-3.3.1-bin-hadoop3 spark-3.3.1 配置环境变量 [bigdatanode106 ~]$ sudo vim /etc/profile…

最优化(10):牛顿类、拟牛顿类算法

4.4 牛顿类算法——介绍了经典牛顿法及其收敛性&#xff0c;并介绍了修正牛顿法和非精确牛顿法&#xff1b; 4.5 拟牛顿类算法——引入割线方程&#xff0c;介绍拟牛顿算法以及拟牛顿矩阵更新方式&#xff0c;然后给出了拟牛顿法的全局收敛性&#xff0c;最后介绍了有限内存BFG…

Java中创建线程的方式

文章目录 创建线程ThreadRunnableCallable线程池创建方式自定义线程池线程池工作原理阻塞队列线程池参数合理配置线程池参数 创建线程 在Java中创建一个线程&#xff0c;有且仅有一种方式&#xff0c;创建一个Thread类实例&#xff0c;并调用它的start方法。 Thread 最经典也…

在Linux上设置MySQL允许远程连接的完整指南

个人名片 &#x1f393;作者简介&#xff1a;java领域优质创作者 &#x1f310;个人主页&#xff1a;码农阿豪 &#x1f4de;工作室&#xff1a;新空间代码工作室&#xff08;提供各种软件服务&#xff09; &#x1f48c;个人邮箱&#xff1a;[2435024119qq.com] &#x1f4f1…

构建图像金字塔遍历不同的大小

1、首先、构建金字塔&#xff0c;其中包括从原始图像到多层缩小后的图像。 import cv2# 读取原始图像 image cv2.imread(path_to_image)# 构建高斯金字塔 gaussian_pyramid [image] for i in range(6): # 这里假设构建6层image cv2.pyrDown(image) # 下采样gaussian_p…

【Linux】多线程_6

文章目录 九、多线程7. 生产者消费者模型生产者消费者模型的简单代码结果演示 未完待续 九、多线程 7. 生产者消费者模型 生产者消费者模型的简单代码 Makefile&#xff1a; cp:Main.ccg -o $ $^ -stdc11 -lpthread .PHONY:clean clean:rm -f cpThread.hpp&#xff1a; #i…

vue引入sm-crypto通过sm4对文件进行加解密,用户输入密码

对文件加密并保存&#xff1a; import { sm4 } from sm-cryptofetch("你的文件地址") .then(response > response.blob()) .then(byteStream > {const reader2 new FileReader();reader2.onload function(event) {const arrayBuffer event.target.result;l…

【Linux】Linux必备的基础指令

目录 Linux必备的基础指令一 、 什么是Linux二、 Linux常用命令2.1 ls2.2 pwd2.3 cd2.4 touch2.5 cat2.6 mkdir2.7 rm 三、 Linux重要指令3.1 cp3.2 mv3.3 tail3.4 vim3.5 grep3.6 ps3.7 netstat Linux必备的基础指令 一 、 什么是Linux 系统编程&⽹络编程 Linux⾃⾝提供…

快速掌握块级盒子垂直水平居中的几种方式

大家好&#xff01;今天我们来聊聊Web开发中如何实现块级盒子水平居中。在前端开发中&#xff0c;经常需要将一个块级盒子在父元素中进行垂直和水平居中对齐&#xff0c;本文将介绍几种常见且高效的实现方法。 一、子元素有固定宽高 第一种情况 子元素有固定宽高&#xff08;…

面向对象设计(OOD)实践:探索组合、聚合和关联

面向对象设计&#xff08;OOD&#xff09;不仅是一种编程范式&#xff0c;更是一种思考问题和设计解决方案的方式。在OOD中&#xff0c;关系是对象之间交互的核心。本文将通过具体例子&#xff0c;深入探讨组合&#xff08;Composition&#xff09;、聚合&#xff08;Aggregati…

编译x-Wrt 全过程

参考自;​​​​​​c编译教程 | All about X-Wrt 需要详细了解的小伙伴还请参看原文 ^-^ 概念&#xff1a; x-wrt&#xff08;基于openwrt深度定制的发行版本&#xff09; 编译系统: ubuntu22.04 注意&#xff1a; 特别注意的是&#xff0c;整个编译过程&#xff0c;都是用 …

java异常体系(清晰解释)

java异常体系分为错误和异常。 &#xff08;1&#xff09;错误就是error&#xff0c;是程序解决不了的&#xff0c;例如OOM内存溢出&#xff0c;JVM运行时数据区&#xff1a;方法区、堆、虚拟机栈、本地方法栈、程序计数器中只有程序计数器不会OOM。 &#xff08;2&#xff0…

linux 查看 io使用率iotop

$ sudo apt install iotop iotop iotop 命令-CSDN博客

JAVA-----String类补充

一、常用方法 1、常见String类的获取功能 length&#xff1a;获取字符串长度&#xff1b; charAt(int index)&#xff1a;获取指定索引位置的字符&#xff1b; indexOf(int ch)&#xff1a;返回指定字符在此字符串中第一次出现处的索引&#xff1b; substring(int start)&…