当前位置:首页 > java > 正文内容

JWT实现认证和授权的原理 和小程序SESSION_KEY(第三方session)

关中浪子3年前 (2021-11-16)java2642
买泛域名SSL证书 送5斤装现摘猕猴桃一箱、同时提供技开源商城搭建免费技术支持。
泛域名ssl证书 239元1年送1个月、单域名39元1年,Sectigo(原Comodo证书)全球可信证书,强大的兼容性,高度安全性,如有问题7天内可退、可开发票
加微信VX 18718058521 备注SSL证书
【腾讯云】2核2G4M云服务器新老同享99元/年,续费同价

目前的H5,公众号,小程序,APP,等登录授权方式都是JWT来实现的,就是用户在登录后后端返回一个token,然后下次请求时request头会带上token,然后后端根据此token来解析用户信息,总结下就3步。

  • 用户调用登录接口,登录成功后获取到JWT的token;

  • 之后用户每次调用接口都在http的header中添加一个叫Authorization的头,值为JWT的token;

  • 后台程序通过对Authorization头中信息的解码及数字签名校验来获取其中的用户信息,从而实现认证和授权。


但是对于小程序来说,其本身就有session,小程序的登录原理是,用户点击授权登录,发起wx.login(),微信返回code,然后通过此code和小程序的APPID和密钥等信息请求微信,返回openid 和sessionkey,openid是用户在此小程序里面的唯一标识,sessionkey是用来解密隐私信息和用户在微信登录的session,因此此sessionkey存在过期,

但是后端也有jwttoken,如何共存,


微信不会把 session_key 的有效期告知开发者。我们会根据用户使用小程序的行为对 session_key 进行续期。用户越频繁使用小程序,session_key 有效期越长,开发者在 session_key 失效时,可以通过重新执行登录流程获取有效的 session_key。使用接口 wx.checkSession可以校验 session_key 是否有效,从而避免小程序反复执行登录流程,具体请参考https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/signature.html


因此小程序前端在请求时 判断下 wx.checkSession 检查登录状态是否过期,如果过期了,就重新执行wx.login

找梯子最重要的就是稳定,这个已经上线三年了,一直稳定没有被封过,赶紧下载备用吧!

扫描二维码推送至手机访问。

版权声明:本文由码农翻生发布,如需转载请注明出处。

本文链接:https://lubojian.cn/post/67.html

分享给朋友:

相关文章

Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoo 错误解决

Caused by: java.lang.ClassNotFoundException: org.apache.commons.pool2.impl.GenericObjectPoolConfig at java.base/jdk.inte...

SpringBoot   http请求 提交日期参数 转换失败的解决方法 (无法自动转换字符串到日期)

SpringBoot http请求 提交日期参数 转换失败的解决方法 (无法自动转换字符串到日期)

如果你有类似如下报错信息,可阅读此文尝试解决:2018-08-18 14:05:17.687  WARN 17100 --- [p-nio-80-exec-2] .w.s...

JAVA POI读取EXCEL 最简洁写法

package com.sunland.poi;   import java.io.FileInputStream; import java.io.IOException;  ...

java Scheduled 设置定时任务为每隔5分执行一次

设置定时任务为每天凌晨2点执行和每小时执行一次每天凌晨2点 0 0 2 * * ?和每天隔一小时 0 * */1 * * ?例1:每隔5秒执行一次:*/5 * * * * ?例2:每隔5分执行一次:0 */5 * * * ?在26分、29分...

nohup 命令详解 >nohup.out 2>&1 &

nohup 命令详解 >nohup.out 2>&1 &

1.nohup用途:不挂断地运行命令。语法:nohup Command [ Arg … ] [ & ]  无论是否将 nohup 命令的输出重定向到终端,输出都将附加到当前目录的 nohup.out 文件中。  如果当前目录的 no...

request.getRemoteAddr() 在使用代理时获取不到IP解决办法

Java获取IP地址:request.getRemoteAddr()警惕项目中需要和第三方平台接口,加了来源IP鉴权功能,测试时发现没有问题,但是部署以后发现存在问题,一直鉴权不通过,一群人抓瞎。我找到那块的代码,跟了一遍流程发现逻辑没有啥...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。