docs: 合适的地方添加 ⚠️ 标识
This commit is contained in:
@@ -1493,7 +1493,7 @@ public AjaxJson doLogin(String username, String password) {
|
||||
// 登录
|
||||
StpUtil.login(user.getId());
|
||||
StpUtil.getSession().set("user", user);
|
||||
return AjaxJson.getSuccess("登录成功").set("satoken", StpUtil.getTokenValue()); // 关键代码
|
||||
return AjaxJson.getSuccess("登录成功").set("satoken", StpUtil.getTokenValue()); // ⚠️ 关键代码
|
||||
}
|
||||
```
|
||||
|
||||
@@ -1580,8 +1580,8 @@ public AjaxJson doLogin(String username, String password) {
|
||||
Subject subject = SecurityUtils.getSubject();
|
||||
try {
|
||||
subject.login(new UsernamePasswordToken(username, password));
|
||||
String token = subject.getSession().getId().toString(); // 关键代码
|
||||
return AjaxJson.getSuccess("登录成功!").set("token", token); // 关键代码
|
||||
String token = subject.getSession().getId().toString(); // ⚠️ 关键代码
|
||||
return AjaxJson.getSuccess("登录成功!").set("token", token); // ⚠️ 关键代码
|
||||
} catch (AuthenticationException e) {
|
||||
e.printStackTrace();
|
||||
return AjaxJson.getError(e.getMessage());
|
||||
|
||||
@@ -191,7 +191,7 @@ public class FeignInterceptor implements RequestInterceptor {
|
||||
*/
|
||||
@FeignClient(
|
||||
name = "sp-home", // 服务名称
|
||||
configuration = FeignInterceptor.class, // 请求拦截器 (关键代码)
|
||||
configuration = FeignInterceptor.class, // 请求拦截器 (⚠️ 关键代码)
|
||||
fallbackFactory = SpCfgInterfaceFallback.class // 服务降级处理
|
||||
)
|
||||
public interface SpCfgInterface {
|
||||
|
||||
@@ -115,7 +115,7 @@ public class SaOAuth2DataLoaderImpl implements SaOAuth2DataLoader {
|
||||
return new SaClientModel()
|
||||
.setClientId("xxxx")
|
||||
.setClientSecret("xxxx")
|
||||
.setSubjectId("1000001") // 关键代码:主体 id (可选)
|
||||
.setSubjectId("1000001") // ⚠️ 关键代码:主体 id (可选)
|
||||
// ....
|
||||
;
|
||||
}
|
||||
|
||||
@@ -300,7 +300,7 @@ public SaResult addMoney(long userId, long money, long timestamp, String nonce,
|
||||
@RequestMapping("addMoney")
|
||||
public SaResult addMoney(long userId, long money, long timestamp, String nonce, String sign) {
|
||||
|
||||
// 1、检查 timestamp 是否超出允许的范围 (重点一:此处需要取绝对值)
|
||||
// 1、检查 timestamp 是否超出允许的范围 (⚠️ 重点一:此处需要取绝对值)
|
||||
long timestampDisparity = Math.abs(System.currentTimeMillis() - timestamp);
|
||||
if(timestampDisparity > 1000 * 60 * 15) {
|
||||
return SaResult.error("timestamp 时间差超出允许的范围,请求无效");
|
||||
@@ -312,7 +312,7 @@ public SaResult addMoney(long userId, long money, long timestamp, String nonce,
|
||||
// 3、验证签名
|
||||
// 代码同上,不再赘述
|
||||
|
||||
// 4、将 nonce 记入缓存,防止重复使用(重点二:此处需要将 ttl 设定为允许 timestamp 时间差的值 x 2 )
|
||||
// 4、将 nonce 记入缓存,防止重复使用(⚠️ 重点二:此处需要将 ttl 设定为允许 timestamp 时间差的值 x 2 )
|
||||
CacheUtil.set("nonce_" + nonce, "1", (1000 * 60 * 15) * 2);
|
||||
|
||||
// 5、业务代码 ...
|
||||
|
||||
@@ -140,11 +140,11 @@ public SaResult getData(String apiType, String loginId) {
|
||||
System.out.println("apiType=" + apiType);
|
||||
System.out.println("loginId=" + loginId);
|
||||
|
||||
// ↓↓↓ 重点代码 ↓↓↓
|
||||
// ↓↓↓ ⚠️ 重点代码 ↓↓↓
|
||||
// 校验签名:只有拥有正确秘钥发起的请求才能通过校验
|
||||
String client = SaHolder.getRequest().getHeader("client");
|
||||
SaSsoServerProcessor.instance.ssoServerTemplate.getSignTemplate(client).checkRequest(SaHolder.getRequest());
|
||||
// ↑↑↑ 重点代码 ↑↑↑
|
||||
// ↑↑↑ ⚠️ 重点代码 ↑↑↑
|
||||
|
||||
// 自定义返回结果(模拟)
|
||||
return SaResult.ok()
|
||||
|
||||
@@ -56,7 +56,7 @@ uni.request({
|
||||
url: 'https://www.example.com/request', // 仅为示例,并非真实接口地址。
|
||||
header: {
|
||||
"content-type": "application/x-www-form-urlencoded",
|
||||
"satoken": uni.getStorageSync('tokenValue') // 关键代码, 注意参数名字是 satoken
|
||||
"satoken": uni.getStorageSync('tokenValue') // ⚠️ 关键代码, 注意参数名字是 satoken
|
||||
},
|
||||
success: (res) => {
|
||||
console.log(res.data);
|
||||
|
||||
Reference in New Issue
Block a user