一、设计思路 对于一些登录之后才能访问的接口(例如:查询我的账号资料),我们通常的做法是增加一层接口校验: 如果校验通过,则:正常返回数据。 如果校验未通过,则:抛出异常,告知其需要先进行登录。 那么,判断会话是否登录的依据是什么?我们先来简单分析一下登录访问流程: 用户提交name+password参数,调用登录接口。 登录成功,返回这个用户的Token会话凭证。 用户后续的每次请求,都携带上这个Token。 服务器根据Token判断此会话是否登录成功。 所谓登录认证,指的就是服务器校验账号密码,为用户颁发Token会话凭证的过程,这个Token也是我们后续判断会话是否登录的关键所在...

  a6eVxpWvCDMi   2023年11月01日   37   0   0 Java

一、设计思路 所谓权限认证,核心逻辑就是判断一个账号是否拥有指定权限: 有,就让你通过。 没有?那么禁止访问! 深入到底层数据中,就是每个账号都会拥有一个权限码集合,框架来校验这个集合中是否包含指定的权限码。 例如:当前账号拥有权限码集合["user-add","user-delete","user-get"],这时候我来校验权限"user-update",则其结果就是:验证失败,禁止访问。 动态演示图: 所以现在问题的核心就是: 如何获取一个账号所拥有的的权限码集合? 本次操作需要验证的权限码是哪个? 接下来,我们将介绍在SpringBoot中如何使用Sa-Token完成权限认证操...

  a6eVxpWvCDMi   2023年11月01日   45   0   0 Java

一、需求 在企业级项目中,踢人下线是一个很常见的需求,如果要设计比较完善的话,至少需要以下功能点: 可以根据用户userId踢出指定会话,对方再次访问系统会被提示:您已被踢下线,请重新登录。 可以查询出一个账号共在几个设备端登录,并返回其对应的Token凭证,以便后续操作。 可以只踢出一个账号某一个端的会话,其他端不受影响。例如在某电商APP上可以看到当前账号共在几个手机上登录,并注销指定端的会话,当前端不受影响。 手动从零开始设计满足需求的会话架构,还是需要一定的代码量的。本篇将介绍如何使用Sa-Token方便的完成上述需求,Sa-Token框架对踢人下线做了较为完整的封装,我们可以使用...

  a6eVxpWvCDMi   2023年11月01日   48   0   0 Java

注解鉴权——优雅的将鉴权与业务代码分离。本篇我们将介绍在Sa-Token中如何通过注解完成权限校验。 Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。Gitee开源地址:https://gitee.com/dromara/sa-token 一、Sa-Token鉴权注解一览 Sa-Token为我们提供的鉴权注解包括但不限于以下: @SaCheckLogin:登录校验——只有登录之后才能进入该方法。 @SaCheckRole("admin"):角色校验——必须具有指定角色标识才能进入该方法。 @SaCh...

  a6eVxpWvCDMi   2023年11月01日   49   0   0 Java

Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。 Gitee开源地址:https://gitee.com/dromara/sa-token 本文将详细介绍Sa-Token中的不同SaSession对象的区别,以及各种方便的存取值的方法。 一、Session是什么? Session是会话中专业的数据缓存组件,通过Session我们可以很方便的缓存一些高频读写数据,提高程序性能,例如: //在登录时缓存user对象 StpUtil.getSession().set("user",user); //然后我...

  a6eVxpWvCDMi   2023年11月01日   84   0   0 Java

一、架构分析 目前绝大多数系统都已经采用“前后端分离”架构来设计了,传统的Session模式鉴权也不再适合这种架构(或者需要额外写很多的代码来专门适配)。 Sa-Token是一个java轻量级权限认证框架,专为前后端分离架构打造,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。 Gitee开源地址:https://gitee.com/dromara/sa-token 本文将介绍在Springboot架构下的前后端分离项目,如何使用Sa-Token方便的完成登录认证。 首先在项目中引入Sa-Token依赖: <!-Sa-Token权限认证--&g...

  a6eVxpWvCDMi   2023年11月01日   36   0   0 Java

一、需求分析 如图所示,一般网站的登录界面都会有一个[记住我]按钮,当你勾选它登录后,即使你关闭浏览器再次打开网站,也依然会处于登录状态,无须重复验证密码: 本文将详细介绍在Sa-Token中,如何做到以下登录模式: 记住我登录:登录后关闭浏览器,再次打开网站登录状态依然有效,无需重复登录。 仅本次有效登录:登录后关闭浏览器,再次打开网站登录状态将失效,需要再次登录。 七天免登录:为登录状态设定一个详细的有效期,在这个期限内无需重复登录,过了期限后需要再次登录。 Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权...

  a6eVxpWvCDMi   2023年11月01日   40   0   0 Java

一、需求分析 在某些敏感操作下,我们需要对已登录的会话进行二次验证。 比如代码托管平台的仓库删除操作,尽管我们已经登录了账号,当我们点击[删除]按钮时,还是需要再次输入一遍密码,这么做主要为了两点: 保证操作者是当前账号本人。 增加操作步骤,防止误删除重要数据。 这就是我们本篇要讲的——二级认证,即:在已登录会话的基础上,进行再次验证,提高会话的安全性。 Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。Gitee开源地址:https://gitee.com/dromara/sa-token 本文将...

  a6eVxpWvCDMi   2023年11月01日   105   0   0 Java

一、需求分析 如果你经常使用腾讯QQ,就会发现它的登录有如下特点:它可以手机电脑同时在线,但是不能在两个手机上同时登录一个账号。 同端互斥登录,指的就是:像腾讯QQ一样,在同一类型设备上只允许单地点登录,在不同类型设备上允许同时在线。 动态演示图: Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。Gitee开源地址:https://gitee.com/dromara/sa-token 本文将介绍在Sa-Token中,如何实现以下登录策略: 单地登录:指一个账号同一时间只能在一个地方登录,新登录会挤...

  a6eVxpWvCDMi   2023年11月01日   82   0   0 Java

Sa-Token是一个轻量级java权限认证框架,主要解决登录认证、权限认证、单点登录、OAuth2、微服务网关鉴权等一系列权限相关问题。 Gitee开源地址:https://gitee.com/dromara/sa-token 本篇将介绍Sa-Token中的多账号认证操作。 一、需求分析 有的时候,我们会在一个项目中设计两套账号体系,比如一个电商系统的user表和admin表,在这种场景下,如果两套账号我们都使用StpUtil类的API进行登录鉴权,那么势必会发生逻辑冲突。 在Sa-Token中,这个问题的模型叫做:多账号体系认证。 要解决这个问题,我们必须有一个合理的机制将这两套账号的...

  a6eVxpWvCDMi   2023年11月01日   85   0   0 Java
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~