当前位置:网站首页>生成用户的唯一标识(openId),并且加密
生成用户的唯一标识(openId),并且加密
2022-08-11 05:17:00 【肖肖冲鸭】
主要步骤:
- 获取appId,appSecret,以及code(使用wx.login获取)
- 接收到微信服务器返回的数据,对当前用户数据进行自定义绑定,加密
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的查找



边栏推荐
猜你喜欢

2021研究生数学建模D题,BP神经网络和卷积神经网络解题代码(基于pytorch)

(2) Docker installs Redis in practice (persistent AOF and RDB snapshots)

更新啦~人生重开模拟器自制

C语言结构体详解 (2) 结构体内存对齐,默认对齐数

(3) How Redis performs stress testing

C语言结构体——位段概念的讲解

【网站小白】Hibernate插入数据成功,不报错,但是数据库中没有值

(二)性能实时监控平台搭建(Grafana+Prometheus+Jmeter)

【CSDN21天学习挑战赛】第一天,配置环境外加实现mnist手写数字识别

flaks framework learning: adding variables to the URL
随机推荐
QtDataVisualization 数据3D可视化
【C语言进阶】第一篇深度剖析整数数据在内存中的存储(一)
(1) Construction of a real-time performance monitoring platform (Grafana+Influxdb+Jmeter)
EOF, feof function, ferror function in C language
(2) Construction of a real-time performance monitoring platform (Grafana+Prometheus+Jmeter)
Pytorch最全安装教程(一步到位)
【CSDN21天学习挑战赛】第一天,配置环境外加实现mnist手写数字识别
第6章 分支语句和逻辑运算符
Flask framework to study: the debug and configuration items
Qt 字符串截取 查找字符串
arraylist之与linkedlist
Django--20 implements Redis support, context, and interaction of context and interface
(3) How Redis performs stress testing
Blender 初教程
C语言之EOF、feof函数、ferror函数
(2) Docker installs Redis in practice (persistent AOF and RDB snapshots)
tensorflow代码翻译成pytorch代码 -详细教程+案例
Chapter 4-2 a complex type (pointer)
win下clion打包的.exe文件在无运行环境的电脑运行显示缺失各种.dll
C语言——文件操作(2)文件的读写操作