1.Sa-Token是什么?
Sa-Token 是一个基于 Java 的轻量级身份认证和授权框架,用于简化和加强应用程序的用户认证和权限管理功能。它提供了一套简洁的 API,使开发者可以轻松地实现用户登录、权限验证、会话管理等功能。
2.如何生成token?
根据用户id生成一串token字符串(一般来讲),根据这个已经够用。
3.c端登录流程
1>首先用户使用 StpUtil.login() 方法进行登录,此登录方法会根据其中一个参数-用户id生成一串token标识。
2>接下来让我们看一下此登录方式的登录参数有哪些以及具体含义:
1)Object id -- 这个参数表示的是用户的唯一标识id。
2)SaLoginModel loginModel -- 这个参数是登录参数模型:
用于在用户登录时传递登录相关的参数。具体来说,SaLoginModel 中包含了一些用于定制登录行为的属性,主要包括以下参数:
1.isLasting:布尔值,表示用户是否持久化登录,即是否记住登录状态。若设置为 true,则用户在下次登录时无需重新输入用户名和密码,直接使用上次生成的 Token 进行登录。
2.device:字符串,表示用户登录的设备标识,用于支持多端登录。例如可以在不同设备上使用不同的标识进行登录,从而实现多端登录的控制。
3.timeout:长整型,表示 Token 超时时间,单位为秒。通过设置该值,可以控制 Token 的有效期时长,超时后需要重新登录。
通过 SaLoginModel 中的这些参数,你可以灵活地定制用户的登录行为,例如实现记住登录、多端登录控制等功能。在调用 public static void login(Object id, SaLoginModel loginModel)
方法时,可以传入一个 SaLoginModel 的实例,从而实现对登录行为的定制控制。
3)登录参数模型也可以这样写:new SaLoginModel().setDevice(device).setExtra("name", saBaseLoginUser.getName()) 完整的如下:
StpUtil.login(saBaseLoginUser.getId(), new SaLoginModel().setDevice(device).setExtra("name", saBaseLoginUser.getName()));
这里面的 setExtra 是指可以在参数模型里面添加额外参数,这里的额外参数是指除了用户 ID 以外,附加存储在 Token 中的一些用户相关的信息。这些额外参数可以是任何对象或者值,用于存储一些与用户相关的自定义数据,例如用户的角色、姓名、手机号码等。
3>token存储:存储在session中,需要后台返回给前台,当然在Sa-Token里面会自动刷新token覆盖旧的tokne。
4>token获取方式:
1)获取用户信息:
stpLogic.getTokenSession().get("loginUser");
2)获取token的值:
StpUtil.getTokenInfo().tokenValue;
3)其他可参照官方文档进行了解:https://sa-token.dev33.cn
4.附加一个解释:通常情况下,Sa-Token 生成的 Token 会放置在 HTTP 响应的头部中,具体使用的头部字段通常是 Authorization
,例如:
Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwidXNlcm5hbWUiOiJhZG1pbiJ9.CnST7UHe5j98Y3bkHf_N_vwzQt0qroKadVTnXJF9qIw
标签:SaLoginModel,登录,Token,用户,token,参数,Sa,解析 From: https://www.cnblogs.com/baoguiying/p/17828864.html