后端开发
·2023-12-17使用 Shiro 框架提供的 AuthorizingRealm 来集成 JWT 认证,简化了认证逻辑。
JwtFilter 作为自定义的 Shiro 过滤器,用于拦截请求并进行 JWT 认证。
JWT Token 的生成和解析逻辑封装在 JwtUtil 中,提高了代码的模块化和可维护性。
中间遇到了一些小问题,比如nginx配置中的地址图省事直接使用localhost,然后一直访问不到/success。
后来看到帖子下面,也遇到了同样的问题。改成ipv4的地址解决了。
补充:
JWT 和 Session Cookies 的不同?
JWT 和 Session Cookies 都提供安全的用户身份验证,但是它们有以下几点不同
1. 密码签名
JWT 具有加密签名,而 Session Cookies 则没有。
2. JSON 是无状态的
JWT 是无状态的,因为声明被存储在客户端,而不是服务端内存中。
身份验证可以在本地进行,而不是在请求必须通过服务器数据库或类似位置中进行。这意味着可以对用户进行多次身份验证,而无需与站点或应用程序的数据库进行通信,也无需在此过程中消耗大量资源。
3. 可扩展性
Session Cookies 是存储在服务器内存中,这就意味着如果网站或者应用很大的情况下会耗费大量的资源。由于 JWT 是无状态的,在许多情况下,它们可以节省服务器资源。因此 JWT 要比 Session Cookies 具有更强的可扩展性。
4. JWT 支持跨域认证
Session Cookies 只能用在单个节点的域或者它的子域中有效。如果它们尝试通过第三个节点访问,就会被禁止。如果你希望自己的网站和其他站点建立安全连接时,这是一个问题。
使用 JWT 可以解决这个问题,使用 JWT 能够通过多个节点进行用户认证,也就是我们常说的跨域认证。
JWT 和 Session Cookies 的选型
大致来说对于只需要登录用户并访问存储在站点数据库中的一些信息的中小型网站来说,Session Cookies 通常就能满足。如果有企业级站点,应用程序或附近的站点,并且需要处理大量的请求,尤其是第三方或很多第三方(包括位于不同域的API),则 JWT 显然更适合。
六级考完结束,虽然很gg,但重新投入到状态来,还有五次机会!
0
0
分享
操作
评论
问答助学
相关内容
0个评论
全部评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
