【小程序】实现登录的流程与封装思路

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

小程序登录流程演练

基本介绍

为什么需要用户登录?

增加用户的粘性和产品的停留时间;

如何识别同一个小程序用户身份?

认识小程序登录流程

openid和unionid

获取code

换取authToken

用户身份多平台共享

账号绑定

手机号绑定

【小程序】实现登录的流程与封装思路


基本演练

第一步操作, 获取到code

onLoad() {
  // 1.获取到code
  wx.login({
    success: (res) => {
      const code = res.code
    }
  })
}

第二步将code发送到后端服务器

onLoad() {
		// 1.获取到code
		wx.login({
			success: (res) => {
				const code = res.code

				// 2.将这个code发送到自己的服务器(后端)
				wx.request({
					url: "http://123.207.32.32:3000/login",
					data: {
						code
					},
					method: "post",
					success: (res) => {
						// 服务器会返回一个token
						const token = res.data.token
						// 将token本地存储
						wx.setStorageSync('token', token)
					}
				})
			}
		})
	}

判断token是否有值, 没有值的时候才需要登录

onLoad() {
		const token = wx.getStorageSync('token')

		// 判断token是否有值
		if (token) {
			console.log("请求其他数据");
		} else {
			this.handleLogin()
		}
	},
	// 将登录操作封装到独立函数
	handleLogin() {
		// 1.获取到code
		wx.login({
			success: (res) => {
				const code = res.code

				// 2.将这个code发送到自己的服务器(后端)
				wx.request({
					url: "http://123.207.32.32:3000/login",
					data: {
						code
					},
					method: "post",
					success: (res) => {
						// 服务器会返回一个token
						const token = res.data.token
						// 将token本地存储
						wx.setStorageSync('token', token)
					}
				})
			}
		})
	}

代码优化

上面这样已经可以正常的验证登录, 但是上面代码还是产生了回调地狱, 我想对他进一步优化

在项目根目录创建一个service文件夹, 在文件夹中创建一个login.js文件, 在这个文件中封装一个函数, 用于获取code

export function getCode() {
	return new Promise((resolve, resject) => {
		wx.login({
			success: (res) => {
				resolve(res.code)
			},
			fail: resject
		})
	})
}

下面我还会使用前面封装的网络请求类, 放在service文件下的index.js文件中, 网络请求封装的细节在前两篇讲过, 想看细节可以看前面的文章, 这里直接给到大家代码

// 网络请求封装成类
class YQRequest {
	// 传入配置的baseurl
	constructor(baseUrl) {
		this.baseUrl = baseUrl
	}

	request(options) {
		const { url } = options
		return new Promise((resolve, reject) => {
			wx.request({ 
				...options,
				url: this.baseUrl + url,
				success: (res) => {
					resolve(res.data)
				},
				fail: reject
			})
		})
	}

	get(options) {
		return this.request({ ...options, method: "get" })
	}

	post(options) {
		return this.request({ ...options, method: "post" })
	}
}

// export const yqRequest = new YQRequest("http://123.207.32.32:1888/api")
export const yqRequest = new YQRequest("http://123.207.32.32:3000")

优化最终代码如下文章来源地址https://www.toymoban.com/news/detail-509587.html

import { getCode } from "../../service/login"
import { yqRequest } from "../../service/index"

Page({
	async onLoad() {
		const token = wx.getStorageSync('token') || ""
		// 1.获取token查看是否过期
		const res = await yqRequest.post({
			url: "/auth",
			header: {
				token: token
			}
		})
		console.log(res);

		// 2.判断token是否有值并且是否过期
		if (token && res.message === "已登录") {
			console.log("请求其他数据");
		} else {
			this.handleLogin()
		}
	},
	async handleLogin() {
		// 1.使用封装的getCode函数获取
		const code = await getCode()

		// 2.再使用前面自己封装的网络请求用code交换token
		const res = await yqRequest.post({
			url: "/login",
			data: { code }
		})

		// 3.将token保存到本地
		wx.setStorageSync('token', res.token)
	}
})

到了这里,关于【小程序】实现登录的流程与封装思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 用go封装和实现扫码登录

    本篇为用go设计开发一个自己的轻量级登录库/框架吧 - 秋玻 - 博客园 (cnblogs.com)的扫码登录业务篇,会讲讲扫码登录的实现,给库/框架增加新的功能,最后说明使用方法 Github:https://github.com/weloe/token-go 首先我们需要知道扫码登录流程 打开登录页面,展示一个二维码,同时轮

    2024年02月08日
    浏览(47)
  • 微信小程序登录流程理解

    小程序官网里面会提到一个小程序的登录逻辑,下面是微信登录的整个过程,官方提供的图片。    官方流程的个人理解: 1.小程序启动 。 2.小程序通过 wx.login 获取微信的 code,然后将这个 code 发送给开发者服务器(我们自己的开发服务器) 3.开发者服务器接收到code 之后,

    2024年02月09日
    浏览(79)
  • 微信小程序的登录流程

    1.使用完整服务也就是用户登录并且允许获取头像和昵称的时候,微信小程序通过方法wx.login获取到code(5 分钟内有效),携带code、appid和appSecret发送请求到服务器端; 2.服务器端利用appId、appSecret 和code调用相对应的接口(auth.code2Session)发送请求到微信官方服务器进行校验,

    2024年02月09日
    浏览(49)
  • 微信小程序授权登录流程

    我是IT果果日记,微信公众号请搜索 IT果果日记 一个普通的技术宅,定期分享技术文章,欢迎点赞、关注和转发,请多关照。 首先, 我们要了解什么是微信小程序登录?它的作用是什么? 微信小程序登录是为了让开发者的服务器获取用户的openId以及session_key的令牌。 请不要

    2024年02月14日
    浏览(61)
  • 微信小程序-微信小程序登录流程(一)

    微信小程序,小程序的一种,英文名Wechat Mini Program,是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或搜一下即可打开应用 冷启动: 小程序首次打开或销毁后再次被打开,此时小程序需要重新加载启动,即冷启动。会检查小程序是否

    2024年02月11日
    浏览(42)
  • 【微信小程序】授权登录流程解析

      目录 微信授权登录流程 1. 官方图示流程详解 2. 代码登录流程拆解 2.1 前端代码示例讲解 2.2 后端代码示例讲解 2.3 代码登录流程拆解 🌟 3. 表情包存储展示(扩展) 附议  ① 微信服务器验证: 当用户打开小程序时,小程序会向用户展示登录按钮,用户点击登录按钮后,小

    2024年02月08日
    浏览(44)
  • mpVue 微信小程序授权登录流程(即登录鉴权流程)及获取手机号一键登录教程(getPhoneNumber使用)

    微信小程序登录 鉴权流程 如下: 因 wx.getUserProfile 与 wx.getUserInfo 接口被收回了,都不能弹出授权窗口,只能使用头像昵称填写能力去获取微信用户信息。 在鉴权页面如下操作 : 1、在 onShow 中调用微信登录 wx.login 获取到唯一的code(用来获取 openid ); 2、根据 wx.login 获取的c

    2024年02月12日
    浏览(68)
  • 微信小程序三种授权登录以及授权登录流程讲解

    🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是Java方文山,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的专栏《 微信小程序开发实战 》。🎯🎯 👉点击这里,就可以查看我的主页啦!👇👇 Java方文山的个人主页 🎁如果感觉还不错的话请给我点赞吧!🎁🎁 💖期待你

    2024年02月08日
    浏览(53)
  • 微信小程序的登录流程——代码详解

    小程序登录流程图(具体详情可看官网链接): https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/login.html 小程序可以通过微信官方提供的登录能力方便地获取微信提供的用户身份标识,快速建立小程序内的用户体系。 前端开发者需要做的任务是从小程序到开发者服务器

    2024年02月09日
    浏览(46)
  • 说说微信小程序的登录流程?

    传统的 web 开发实现登陆功能,一般的做法是输入账号密码、或者输入手机号及短信验证码进行登录 服务端校验用户信息通过之后,下发一个代表登录态的 token 给客户端,以便进行后续的交互,每当 token 过期,用户都需要重新登录 而在微信小程序中,可以通过微信官方提供的

    2024年02月20日
    浏览(46)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包