手把手教会你微信小程序登录鉴权
发表时间:2021-1-5
发布人:葵宇科技
浏览次数:156
为了方便小程序应用使用微信登录态进行授权登录,微信小程序提供了登录授权的开放接口。
openid
和
session_key
session_key
就保证了当前用户进行会话操作的有效性,这个session_key是微信服务端给我们派发的。https://api.weixin.qq.com/sns/jscode2session
,这个接口需要带上四个参数字段:session_key和微信派发的code是一一对应的,同一code只能换取一次session_key。每次调用wx.login(),都会下发一个新的code和对应的session_key,为了保证用户体验和登录态的有效性,开发者需要清楚用户需要重新登录时才去调用wx.login()
session_key是有失效性的,即便是不调用wx.login,session_key也会过期,过期时间跟用户使用小程序的频率成正相关,但具体的时间长短开发者和用户都是获取不到的
session_key
来“间接”地维护登录态,所谓间接,也就是我们需要自己维护用户的登录态信息,这里也是考虑到安全性因素,如果直接使用微信服务端派发的session_key来作为业务方的登录态使用,会被“有心之人”用来获取用户的敏感信息,比如wx.getUserInfo()这个接口呢,就需要session_key来配合解密微信用户的敏感信息。utf8mb4
,因此可在/etc/my.cnf
设置默认字符集编码及服务端编码格式设置数据库字符集为
utf8mb4
ALTER DATABASE 数据库名称 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;
设置数据表字符集为
utf8mb4
ALTER TABLE 数据表名称 CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
设置数据列字段字符集为
utf8mb4
ALTER TABLE 数据表名称 CHANGE 字段列名称 VARCHAR(n) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
这里的
COLLATE
指的是排序字符集,也就是用来对存储的字符进行排序和比较的,utf8mb4
常用的collation有两种:utf8mb4_unicode_ci
和utf8mb4_general_ci
utf8mb4_unicode_ci
,因为它是基于标准的Unicode Collation Algorithm
来排序的,可以在各种语言进行精确排序。