微信小程序-实现微信登录
业务流程:
1:首先需要一个按钮触发事件
2:调用微信小程序的登录接口wx.login,拿到code
3:调用微信小程序的获取用户信息的接口wx.getUserProfile,拿到用户的个人信息
4:拿到的个人信息调用后台的接口,把个人信息传给后台,登录成功并把相关信息存储在本地的缓存中,方便之后的开发使用
调用微信小程序的登录接口:wx.login(Object object)
调用微信获取用户个人信息的接口:wx.getUserProfile(Object object)
调用微信获取用户的当前设置的接口:wx.getSetting(Object object)
下面开始用代码介绍
wxml:
<view>
<button bindtap="login">登录</button>
</view>
js:
//登录按钮触发的事件
login(){
let that = this
//调用微信小程序的登录接口
wx.login({
success(e) {
that.data.loginInfo.code = e.code //拿到的code存储在data中
wx.showModal({
title: '温馨提示',
content: '微信授权登录后才能正常使用小程序功能',
cancelText: '拒绝',
confirmText: '同意',
success( sucessInfo ) {
//调用微信小程序的获取用户信息的接口
wx.getUserProfile({
desc: '用于完善会员资料', // 声明获取用户个人信息后的用途
lang: 'zh_CN',
success(info) {
//把获取到的信息复制到data中的loginInfo中
that.data.loginInfo = Object.assign( that.data.loginInfo, info )
//调用后台的接口,把所有整合的个人信息传过去
that.handlerLogin( that.data.loginInfo )
},
fail(e) {
console.log('获取用户信息失败', e) }
})
},
fail() {
console.log("拒绝")
},
complete() {}
}) },
fail(e) {
console.log('fail', e)
wx.showToast({
title: '网络异常',
duration: 2000
})
return
}
}) }
//调用后台的登录接口
handlerLogin( loginInfo ) {
let that = this
//login是后台接口封装的方法
login( loginInfo ).then(( res ) => {
console.log('登录成功', res)
let { cache_key, expires_time, token, userInfo } = res.data
//把用户信息存储到storage中,方便其它地方使用
wx.setStorageSync('cache_key', cache_key)
wx.setStorageSync('expires_time', expires_time)
wx.setStorageSync('token', token)
wx.setStorageSync('isLog', true)
wx.setStorageSync('userInfo', JSON.stringify( userInfo ))
wx.setStorageSync('loginRecord', new Date().getTime())
})
.catch(( res ) => {
console.log('catch', res)
})
.finally(() => {
console.log('finally')
})
}
参考文档:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
参考文档:https://blog.csdn.net/weixin_48145150/article/details/123897786
微信小程序-实现微信登录的更多相关文章
- 微信小程序与微信公众号同一用户登录问题
微信小程序与微信公众号同一用户登录问题 最近在做微信小程序与微信公众号登录合并的接口.整理相关资料以及个人认识的心得写了这篇文章与大家一起分享. 首先,简单说下我遇到的问题是我们的程序调用微信小程序得 ...
- java实现微信小程序服务端(登录)
微信小程序如今被广泛使用,微信小程序按照微信官网的定义来说就是: 微信小程序是一种全新的连接用户与服务的方式,它可以在微信内被便捷地获取和传播,同时具有出色的使用体验. 这就是微信小程序的魅力所在,有 ...
- 微信小程序(原名微信应用号)开发工具0.9版安装教程
微信小程序全称微信公众平台·小程序,原名微信公众平台·应用号(简称微信应用号) 声明 微信小程序开发工具类似于一个轻量级的IDE集成开发环境,目前仅开放给了少部分受微信官方邀请的人士(据说仅200个名 ...
- 微信小程序之微信登陆 —— 微信小程序教程系列(20)
简介: 微信登陆,在新建一个微信小程序Hello World项目的时候,就可以看到项目中出现了我们的微信头像,其实这个Hello World项目,就有一个简化版的微信登陆.只不过是,还没有写入到咱们自 ...
- 微信小程序和微信公众号的id是一个吗
首先,简单说下我遇到的问题是我们的程序调用微信小程序得到openid,然后通过openID得到用户的唯一标识,用户得以登录,然而,当我们调用微信公众号也同样的到openid,同一以用户两个不同的ope ...
- 微信小程序(微信应用号)开发ide安装解决方法
这两天整个技术圈都炸锅了,微信小程序(微信应用号)发布内测,首批200家收到邀请,但是没受邀请的同学,也不用担心,下面介绍一下解决方法. 首先需要下载ide,昨天只需要下载0.9版本的编辑器并替换文件 ...
- 微信小程序(微信应用号)组件讲解[申明:来源于网络]
微信小程序(微信应用号)组件讲解[申明:来源于网络] 地址:http://www.cnblogs.com/muyixiaoguang/p/5902008.html
- [转]微信小程序、微信公众号、H5之间相互跳转
本文转自:https://www.cnblogs.com/colorful-paopao1/p/8608609.html 转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加 ...
- 微信小程序、微信公众号、H5之间相互跳转
转自慕课网 一.小程序和公众号 答案是:可以相互关联. 在微信公众号里可以添加小程序. 图片有点小,我把文字打出来吧: 可关联已有的小程序或快速创建小程序.已关联的小程序可被使用在自定义菜单和模版消息 ...
- 使用Appium 测试微信小程序和微信公众号方法
由于腾讯系QQ.微信等都是基于腾讯自研X5内核,不是google原生webview,需要打开TBS内核Inspector调试功能才能用Chrome浏览器查看页面元素,并实现Appium自动化测试微信小 ...
随机推荐
- CF908G 题解
题意 传送门 给 \(x\le10^{700}\),问 \(1\) 到 \(x\) 中每个数在各数位排序后得到的数的和.答案模 \(10^9+7\). 题解 学到一种新鲜的转化方式,来记一下. 将 \ ...
- Github快速访问
Github快速访问 1. 国内访问github慢 github是国外网站,用国内的网络很难访问到,也就无法使用github,作为程序猿的我们,无法使用github可太难受了,那么我们有什么办 ...
- windows下git bash不显示中文问题解决
问题: 在git bash下输入git log,查看log记录的时候中文显示不出来 解决方案: 网上查了很多解决方法,逐个尝试 1.尝试 git config --global core.quotep ...
- python下载.msg文件的附件
.msg文件,outlook邮件的一种保存方式 方式一:使用win32com库,不过要安装outlook才行 import win32com.client import os def get_atta ...
- 2022-3-15内部群每日三题-清辉PMP
1.一家公司被一家大公司收购,这家大公司希望把重点放在其核心产品和服务上.处于规划阶段的所有项目都正在进行修定,以包含新的变更管理程序.一个项目的项目经理需要持续的高级输入,以确保与新的组织结构保持一 ...
- Window下载并安装WinSCP客户端
winSCP官方网站:https://winscp.net/eng/docs/lang:chs. 环境 操作系统:Window 10 企业版LTSC;内存:8GB;操作类型:64位. 步骤 1. 打开 ...
- echart 悬浮窗超边界了怎么办?
悬浮窗超边界了怎么办? 在渲染界面函数里面 写一个 // tooltip浮窗未知 chartOption.tooltip.position = function(point, params, dom, ...
- Docker部署OpenWRT-旁路由
1.确认网卡名称 命令 ip addr 显示如下图的 enp2s0 就是我们准备进行链接的网卡名称. 2.打开网卡的混杂模式 sudo ip link set enp2s0 promisc on 3. ...
- opencv基本函数详解笔记
一.读取保存图片 Mat scrImage = imread("1.jpg"); //显示图像 imshow("原图", scrImage); //窗口等待 w ...
- Jmeter添加while控制器
通过添加while控制器,可以实现条件+循环判断,使while控制器内的子线程根据之前线程的返回(while控制器内外变量皆可)进行触发+循环的控制. 原理如下:通过Condition判断条件语句是否 ...