广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >如何基于uni-app实现微信小程序一键登录与退出登录功能
  • 244
分享到

如何基于uni-app实现微信小程序一键登录与退出登录功能

2024-04-02 19:04:59 244人浏览 八月长安
摘要

目录起因总体思路详细流程总结起因 目前正在使用uni-app开发一个微信小程序,开发到登录模块时通过查阅uni-app官方教程、微信小程序官方文档、网上的教程终于是实现了微信小程序的

起因

目前正在使用uni-app开发一个微信小程序,开发到登录模块时通过查阅uni-app官方教程微信小程序官方文档、网上的教程终于是实现了微信小程序的登录模块,现总结分享给大家,共同学习

总体思路

  1. 创建Vuex进行状态管理(可根据实际需求自行选择是否使用)
  2. 创建一个登录按钮并添加触发事件
  3. 调用官方uni.getUserProfile() 接口获取用户信息
  4. 调用官方uni.login() 接口获取临时登录凭证code
  5. 调用后端的登录接口将code 传过去获取token 值
  6. 登录成功!渲染用户信息到页面中
  7. 创建一个退出登录按钮并添加触发事件
  8. 清空 vuex 中的 userinfo和token
  9. 退出成功!跳转到其他页面

详细流程

创建Vuex进行状态管理,用于全局存放token用户信息方便使用。(可根据实际需求自行选择是否使用)

token 可用于判断用户是否已登录,以及作为后续的访问凭证

const store = createStore({
	state: {
		"token": uni.getStorageSync('token') || '',
		"userinfo": JSON.parse(uni.getStorageSync('userinfo') || '{}')
	},
	mutations: {
		// 更新用户信息
		updateUserInfo(state, userinfo) {
			state.userinfo = userinfo
			this.commit('saveUserInfoToStorge')
		},
		// 将用户信息持久化存储到本地
		saveUserInfoToStorge(state) {
			uni.setStorageSync('userinfo', jsON.stringify(state.userinfo))
		},
		// 更新 token 字符串
		updateToken(state, token) {
			state.token = token
			// 调用saveTokenToStorage方法
			this.commit('saveTokenToStorage')
		},

		// 将 token 字符串持久化存储到本地
		saveTokenToStorage(state) {
			uni.setStorageSync('token', state.token)
		}
	}
})

创建一个按钮并添加触发事件

<button type="primary" @click="getUserInfo">一键登录</button>

调用官方uni.getUserProfile() 接口获取用户信息,并储存到Vuex中

getUserInfo() {
	uni.getUserProfile({
        //声明获取用户个人信息后的用途(必填)
		desc: "仅用作登录功能",
		success: (res) => {
            //调用Vuex中的updateUserInfo()方法,将用户信息存储到Vuex中
			this.updateUserInfo(res.userInfo)
		},
		fail: () => {
			uni.$showMsg('您取消了登录授权!')
		}
	})
},

调用官方uni.login() 接口获取临时登录凭证code

const res = await uni.login().catch(err => err)
//判断是否获取成功
if (res.errMsg !== 'login:ok') return uni.$showMsg('登录失败!')

调用后端的登录接口将code 传过去,后端会返回一个token值,将token值储存到Vuex中并持久化保存到本地中

//换取token
const { data: loginResult } = await uni.$Http.post(`/wx/login?code=${res.code}`)
//将token值存储到Vuex中
this.updateToken(loginResult.data.ticket)

登录成功!渲染用户信息到页面中

创建一个退出登录按钮并添加触发事件

<button @click="loGout">退出登录</button>

定义 logout 事件处理函数

// 退出登录
async logout() {
  // 询问用户是否退出登录
  const [err, succ] = await uni.showModal({
    title: '提示',
    content: '确认退出登录吗?'
  }).catch(err => err)

  if (succ && succ.confirm) {
     // 用户确认了退出登录的操作
     // 清空 vuex 中的 userinfo、token
     this.updateUserInfo({})
     this.updateToken('')
  }
}

退出成功!并跳转到其他页面

uni.switchTab({
    //跳转到主页
	url: '../../pages/home/home',
	success: () => {
        //跳转成功后提示退出成功
		uni.$showMsg('退出成功')
	},
})

总结

总体流程并不复杂,登录就是调用两个官方接口和一个后台接口获取用户信息token值,退出登录就是清除储存的用户信息token值。

到此这篇关于如何基于uni-app实现微信小程序一键登录与退出登录功能的文章就介绍到这了,更多相关uni-app微信小程序一键登录与退出登录内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: 如何基于uni-app实现微信小程序一键登录与退出登录功能

本文链接: https://www.lsjlt.com/news/167649.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何基于uni-app实现微信小程序一键登录与退出登录功能
    目录起因总体思路详细流程总结起因 目前正在使用uni-app开发一个微信小程序,开发到登录模块时通过查阅uni-app官方教程、微信小程序官方文档、网上的教程终于是实现了微信小程序的...
    99+
    2022-11-13
  • 如何实现uni-app微信小程序授权登录
    小编给大家分享一下如何实现uni-app微信小程序授权登录,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、appID相关申请和配置1. appid获取方式登录微...
    99+
    2023-06-22
  • 微信小程序授权登录功能如何实现
    这篇文章主要介绍“微信小程序授权登录功能如何实现”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“微信小程序授权登录功能如何实现”文章能帮助大家解决问题。微信授权登录我们的项目开发有时候用到用户的一些信...
    99+
    2023-07-05
  • 微信小程序登录与注册功能的实现详解
    目录小程序中的登录用户注册用户信息修改总结小程序中的登录 在小程序中有一个概念叫openid,这个相当于登录小程序用户的唯一标识,每个微信用户都不同。那要如何拿到用户的唯一标识呢?在...
    99+
    2022-11-13
    微信小程序登录 微信小程序注册
  • 微信小程序中如何实现用户登录与登录态维护
    小编给大家分享一下微信小程序中如何实现用户登录与登录态维护,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在微信小程序中,我们大致...
    99+
    2022-10-19
  • 利用java实现一个微信小程序登录态维护功能
    利用java实现一个微信小程序登录态维护功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。作为服务端,如果想获得到使用微信小程序的会员信息,就需要小程序作为客户...
    99+
    2023-05-31
    微信小程序 ava java
  • 一文教会你微信小程序如何实现登录
    目录业务流程:下面开始用代码介绍1:data初始数据2:按钮触发的login点击事件3:调用后台的登录接口总结业务流程: 1:首先需要一个按钮触发事件 2:调用微信小程序的登录接口w...
    99+
    2022-11-13
  • 微信小程序如何实现录音与播放录音功能
    这篇文章主要为大家展示了“微信小程序如何实现录音与播放录音功能”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“微信小程序如何实现录音与播放录音功能”这篇文章吧。小...
    99+
    2022-10-19
  • 微信小程序如何实现录音与音频播放功能
    这篇文章将为大家详细讲解有关微信小程序如何实现录音与音频播放功能,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。小程序继承了微信强大的语音处理功能,提供了录音、音频播放控制和背景音乐等功能,它们的功能不同,...
    99+
    2023-06-29
  • 微信小程序如何实现文字长按复制与一键复制功能
    本篇内容介绍了“微信小程序如何实现文字长按复制与一键复制功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、不引入外部组件的实现方式&nb...
    99+
    2023-07-05
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作