(四)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信息子在缓存里面就不存在了

posted @   yingxianqi  阅读(327)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· Docker 太简单,K8s 太复杂?w7panel 让容器管理更轻松!
点击右上角即可分享
微信分享提示