JWT学习文章:
上一篇学习了JWT的基本理论,这一篇将根据原理进行代码实现。
要想实现jwt的加密解密,要先生成一个SecurityKey,大家可以在网上工具生成一个随机的密钥。我是在这里生成的。
下面篇幅大量都是代码,因为注释写得很清楚,因此就不再有过多文字说明。
代码实现
新建常量类:Const
public class Const
{
public const string SecurityKey= "MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDSfLGu+kcFDcJUCV46J+SbgR0lNc2NqgCGzojQTWW9xqjuzPF3mpisvTggYZSGfBzN+88YLZYbBLrDTUMJ4nTieElbP6SHkBFu8F+7fFBi7w3UPsaAXDr2E2srQYU5ZlKAcFBoNajNWj3sfSVRoYRPdqDTj4WdJlUPSNGz0wgRrQIDAQAB";
public const string Domain = "http://localhost:5000";
}
新建控制器:AuthController
[ApiController]
[Route("[controller]")]
public class AuthController : ControllerBase
{
[HttpGet]
public IActionResult Get(string userName, string pwd)
{
//此处只简单的验证用户名和密码的不为空,实际中使用时不要这样
if (!string.IsNullOrEmpty(userName) && !string.IsNullOrEmpty(pwd))
{
//Header
var header = "{\"alg\": \"HS256\",\"typ\": \"JWT\"}";
var headerBase =