【微信授权登录】uniapp开发小程序,实现微信授权登录功能 & 退出登录

这篇具有很好参考价值的文章主要介绍了【微信授权登录】uniapp开发小程序,实现微信授权登录功能 & 退出登录。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、效果展示

uniapp 微信小程序登录,uniapp,小程序,微信,javascript

uniapp 微信小程序登录,uniapp,小程序,微信,javascript
uniapp 微信小程序登录,uniapp,小程序,微信,javascript

二、解题思路:

微信授权登录(获取用户信息)
1.先获取用户信息——用户授权允许后,通过调用uni.login 可以获取到code。
2.拿着获取到的code去调用——登录接口,可以获取到token。
3.把token存入缓存。就可以在页面判断是否登录了。

三、代码

第一种方式:
<view @click="getUserInfo()">点击登录</view>
<view v-if="info.avatar" @click="outLoginFun">退出登录</view>

<script>
	export default {
		data() {
			return {
				localtoken: ''
			}
		},
		
		onShow() {
			this.localtoken = uni.getStorageSync('localtoken');
		},

		methods: {
			getUserInfo() {
				var that = this;
				uni.showLoading({ // 展示加载框
					title: '加载中',
				});
				uni.getUserProfile({ //获取到用户信息
					desc: '登录后可同步数据',
					success: async (obj) => {
						console.log('obj', obj);
						that.nickName = obj.userInfo.nickName //用户名
						that.avatarUrl = obj.userInfo.avatarUrl //用户头像

						// 调用 action ,请求登录接口
						uni.login({
							provider: 'weixin',
							success: (res) => {
								console.log('res-login', res);  //获取到code
								that.code = res.code; 
								// console.log('code', res.code);
								
								//请求登录接口
								if (res.errMsg == 'login:ok') {
									var params = {
										code: that.code,
										nickname: that.nickName,
										avatar: that.avatarUrl
									}
									that.$api.appPlateForm('POST', 'auth/login', params, function(res) {
										if (res.code == 200) {
											//获取到token 存入缓存。通过有无token来判断是否登录
											// console.log('登录接口',res)
											uni.setStorageSync('localtoken', res.data.data.access_token)
											
											let pages = getCurrentPages(); //获取所有页面的数组对象
											let currPage = pages[pages.length - 1]; //当前页面
											currPage.onLoad(currPage.options); // 传入参数刷新当前页面
											currPage.onShow(); // 传入参数刷新当前页面
											
											that.myProfile()  //用户信息接口
											
											uni.showToast({
												title: '登录成功',
												icon: 'success',
												mask: true,
											});
										}
									}, function(err) {
										uni.showToast({
											icon: 'none',
											title: err.msg
										})
									});

								}
							},
						});
					},
					fail: () => {
						uni.showToast({
							title: '授权已取消',
							icon: 'error',
							mask: true,
						});
					},
					complete: () => {
						// 隐藏loading
						uni.hideLoading();
					},
				});
			},

			//退出登录
			logOut() {
				var that = this
				uni.showModal({
					title: '确定要退出登录吗?',
					success: function(res) {
						if (res.confirm) {  //确认退出
							uni.removeStorageSync('localtoken')
							uni.removeStorageSync('userId');
							uni.removeStorageSync('userInfo');
							this.info = {};
							//that.nickname = ''
							//that.headimgurl = ''
							
							//跳转到首页
							uni.reLaunch({
								url: '/pages/home/index'
							})

						} else if (res.cancel) {  //取消退出
							// console.log('用户点击取消');
						}
					}
				});

			},


		}
	}
</script>
第二种方式:
<template>
	<view class="">
		<view @tap="loginFun">登录</view>
		<view @click="outLoginFun">退出登录</view> 
	</view>
</template>

<script>
	export default {
		data() {
			return {
				info: {},
			}
		},
	
		methods: {
			loginFun() {
				uni.login({
					"provider": "weixin",
					"onlyAuthorize": true, // 微信登录仅请求授权认证
					success: (event) => {
						console.log(event);
						this.$api.appPlateForm('post', this.$url.url.getOpenId, {
							code: event.code
						}, (res) => {
							console.log(res.data.openid);
							let param = {
								openid: res.data.openid,
							}
							this.$api.appPlateForm('post', this.$url.url.login, param, (res) => {
								uni.setStorageSync('localtoken', res.data.token);
								uni.setStorageSync('user', JSON.stringify(res.data.user));
								uni.showToast({
									icon: 'success',
									title: '登录成功'
								})
							})
						})
					},
					fail: (err) => {
						// 登录授权失败  
						// err.code是错误码
					}
				})
			},

			// 退出登录
			outLoginFun() {
				uni.removeStorageSync('localtoken');
				uni.removeStorageSync('userId');
				uni.removeStorageSync('userInfo');
				this.info = {};
				uni.reLaunch({
					url: '/pages/home/index'
				})
			},
		
		}
	}
</script>

ending~

uniapp 微信小程序登录,uniapp,小程序,微信,javascript文章来源地址https://www.toymoban.com/news/detail-774368.html

到了这里,关于【微信授权登录】uniapp开发小程序,实现微信授权登录功能 & 退出登录的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    UNIAPP---实现微信小程序登录授权和手机号授权(uniapp做微信小程序)

    描述:uniapp开发小程序,先授权用户信息后再出现手机号授权的页面进行手机号授权。完成后返回上一页面并把信息存入后台以及前台缓存中,方便使用。 1.在uniapp的manifest.json进行微信小程序配置 2.封装request请求api.js(如果已封装可跳过) 3.封装微信授权登录以及获取手机

    2024年02月11日
    浏览(11)
  • uniapp 小程序实现微信授权登录(前端和后端)

    uniapp 小程序实现微信授权登录(前端和后端)

    1.主要流程:先通过 uni.getUserProfile授权获取用户名称和头像等信息 在调用 uni.login 获取微信登录需要的临时code 2. 前端代码: 1.主要流程:在前端调用接口成功的将临时code 传递给后端时 ,后端通过调用微信的第三方接口拿到 openid, session_key 这两个参数,查询数据库是否有

    2024年02月16日
    浏览(15)
  • 基于uniapp+java实现微信小程序无感登录,授权手机号登录,获取昵称头像,获取定位信息

    基于uniapp+java实现微信小程序无感登录,授权手机号登录,获取昵称头像,获取定位信息

    使用uniapp开发微信小程序,避免不了微信登录。但自动微信2022年升级了api版本后,不再允许返回昵称和头像信息,所以才出现无感登录或授权手机号登录。实现方式大同小异。 java后端所需maven 前端实现代码: 由于使用uni.login并不需要用户授权,所以能做到无感登录。 后端

    2024年02月16日
    浏览(17)
  • 前端uniapp+后端springboot 详细教程《实现微信小程序授权登录》(附完整前后端项目demo)

    前端uniapp+后端springboot 详细教程《实现微信小程序授权登录》(附完整前后端项目demo)

    微信小程序官方登录流程图: 参考微信小程序登录官网文档 1、前端技术栈 1.1、uniapp 使用uniapp构建一套代码多端使用的前端框架项目 1.2、前端封装工具 dateUtil.js: 功能: 1. 时间日期格式化 2. 传入日期是否和当前日期的比较 完整代码: requestUtil.js: 功能: 1. 定义公共的

    2024年02月14日
    浏览(45)
  • 微信公众平台测试号申请、使用HBuilder X与微信开发者工具实现授权登陆功能以及单点登录

    微信公众平台测试号申请、使用HBuilder X与微信开发者工具实现授权登陆功能以及单点登录

    测试账号申请 测号响应流程:客户端发送请求,微信服务器收到请求后,转发到开发者服务器上,处理完后在发送给微信服务器,在返回给客户端 1、打开微信公众平台,点击测试帐号申请。地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login, 通过微信扫一扫授权就能进

    2024年02月02日
    浏览(18)
  • 【UniApp开发小程序】请求包创建+登录功能实现

    【UniApp开发小程序】请求包创建+登录功能实现

    项目基于若依管理系统进行开发,部分接口来源于若依管理系统后端项目,如本文的登录接口、获取验证码接口。 小程序的数据需要向后端发请求进行获取,为了简化后续的开发,需要创建一个包专门存放所有发请求的js方法。 创建api的存放包 再创建工具js的存放包 注意使

    2024年02月16日
    浏览(11)
  • 新!uniapp微信小程序微信授权登录

    新!uniapp微信小程序微信授权登录

     11月后,微信小程序对于微信授权登录做了逻辑上的更改,之前的一键授权获取用户信息的功能已不再适用。已发布审核完成的小程序不受影响,但要想再发布,只能换成新的登陆逻辑了。 首先,要说明的,个人中心页面,未登陆时,应有登陆按钮,最好不要通过路由守卫

    2024年02月09日
    浏览(12)
  • uniapp + vue3微信小程序开发(3)微信授权登录

    uniapp + vue3微信小程序开发(3)微信授权登录

    接口获取openId = 用户微信信息入库 = 手机号授权入库 我们知道小程序都是需要openId的,那我们可以通过前端获取,也可以通过后端接口获取, 前端就是这个地址,appid和secret 在你微信公众平台下都可以找到, code,在你调用uni.login就可以获取,但是切记, code码只能使用一次

    2024年02月08日
    浏览(36)
  • uniapp微信小程序授权登录并获取手机号

    新版:前端要授权两次,一次获取用户信息授权码code,另外一次获取用户手机授权码code,全部传给后端。后端通过用户信息授权码获取openid,通过手机授权码获取手机号码。老版:前端传给后端授权码code和用户手机授权回调 里的iv和encryptedData给后端,后端通过code获取ope

    2024年02月11日
    浏览(16)
  • SpringCloud微服务实战——搭建企业级开发框架:第三方登录-微信小程序授权登录流程设计和实现

    SpringCloud微服务实战——搭建企业级开发框架:第三方登录-微信小程序授权登录流程设计和实现

      在前面的设计和实现中,我们的微服务开发平台通过JustAuth来实现第三方授权登录,通过集成公共组件,着实减少了很多工作量,大多数的第三方登录直接通过配置就可以实现。而在第三方授权登录中,微信小程序授权登录和APP微信授权登录是两种特殊的第三方授权登录

    2024年02月07日
    浏览(9)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包