当前位置:网站首页>生成用户的唯一标识(openId),并且加密

生成用户的唯一标识(openId),并且加密

2022-08-11 05:17:00 肖肖冲鸭

主要步骤:

  1. 获取appId,appSecret,以及code(使用wx.login获取)
  2. 接收到微信服务器返回的数据,对当前用户数据进行自定义绑定,加密

server.js服务器中

const KoaRouter=require('koa-router')
// 2.生成路由器对象
const router=new KoaRouter()
// 引入之前 npm install flyio(作用相当于axios,只不过小程序里面没有axios)
const Fly=require('flyio/src/node')
const fly=new Fly;
// 引入加密的包(引入之前npm install jsonwebtoken)
const jwt=require('jsonwebtoken')
// 注册用户openId
router.get('/getOpenId',async(ctx)=>{
    
	// 1.接收请求参数
	let code=ctx.query.code
	// console.log('code',code)
	// 2.整合数据对接微信服务器
	let appId='wx45ae1e9b07e371a4'
	let appSecret='1ab1044500e812dc8cdc0f7176980344'
	// 3.接收到微信服务器返回的数据,对当前用户数据进行自定义绑定,加密
	let url=`https://api.weixin.qq.com/sns/jscode2session?appid=${
      appId}&secret=${
      appSecret}&js_code=${
      code}&grant_type=authorization_code`
	let result=await fly.get(url)
	let openId=JSON.parse(result.data).openid
	// console.log(openId)
	// 4.返回给浏览器端当前用户加密后的标识
	let userInfo={
    
		openId,
		username:'nihao',
		age:21
	}
	// 4.1 对用户数据加密,生成token
	let token=jwt.sign(userInfo,'xiaoxiao')
	console.log(token)
	// 反编译token字段(解密)
	result=jwt.verify(token,'xiaoxiao')
	console.log(result)
	// 5.返回加密后的数据给浏览器端
	ctx.body=token
})

personal.vue中(获取唯一标识openId,并存入本地)

// 获取用户的唯一标识
			
			// 1. 获取用户 的登录凭证
			wx.login({
    
				success: async(res) => {
    
					// console.log(res)
					let code=res.code
					// 2.将code发请求发送给服务器端
					let token=await request('/getOpenId',{
    code})
					// console.log(token)
					// 3.将token存入本地
					wx.setStorageSync('token',token)
				}
			})

官方文档中相关api的查找

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

原网站

版权声明
本文为[肖肖冲鸭]所创,转载请带上原文链接,感谢
https://blog.csdn.net/weixin_48952990/article/details/126086004