(四)jwt调用webapi接口时的验证
1:生成jwt,此处不能加[Authorize]验证,往往作为登陆接口调用
[Route("/api/Tvl")]
[ApiController]
public class TvlController : ControllerBase
{
/// <summary>
/// 生成token
/// </summary>
[Route("WriteToken")]
[HttpPost]
public void WriteToken()
{
string token = JwtHelper.IssueJwt();
}
}
postman对应的请求路径: http://localhost:4038/api/Tvl/WriteToken
2:验证jwt,加上[Authorize]表示要启用jwt,加上[AllowAnonymous]特性,表示绕过权限验证,不会验证jwt,加了[Authorize]特性不加[AllowAnonymous]就要验证jwt
[Authorize]
[Route("/api/Test")]
[ApiController]
public class TestController : ControllerBase
{
[Route("GetVl")]
[HttpPost]
public string GetVl()
{
return "111";
}
[AllowAnonymous]
[Route("GetVl1")]
[HttpPost]
public string GetVl1()
{
return "222";
}
}
postman请求:
找到headers ,key值输入:Authorization value值输入:Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIxIiwiaWF0IjoiMTY0NTQxMjgwMSIsIm5iZiI6IjE2NDU0MTI4MDEiLCJleHAiOiIxNjQ1NDIwMDAxIiwiaXNzIjoicG1zLmNvcmUub3duZXIiLCJhdWQiOiJwbXMuY29yZSJ9.gw2P5GiqEv5umY5yaEKkba9M_8-zjeZ5nS63TiIq4R0
请求路径:
http://localhost:4038/api/Test/GetVl
http://localhost:4038/api/Test/GetVl1
注意点:headers的Authorization的value值里面的token前面必须跟Bearer加空格,不然是无效的
GetVl1加了[AllowAnonymous],所以不会验证jwt
3:登陆的整个逻辑
登陆后将token返回给客户端,客户之后每次访问接口,在过滤器都会判断档期时间是否快要到过期时间,如果快要到过期时间了,给前端一个标记,前端根据这个表记去刷新token,获取信的token
4:退出登陆的逻辑
实质是将改用户的信息从redes或者Cache缓存里面删除掉,相当于该用户的token信息子在缓存里面就不存在了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!