一、什么是Jwt

Jwt(JSON Web Token)是一种基于JSON的开放标准(RFC 7519),它定义了一种紧凑且独立的方式,用于在各方之间作为JSON对象安全地传输信息。它可以使用数字签名进行签名,也可以使用密码加密。Jwt可以用来在身份提供者和服务提供者之间传递声明,因此它可以用作身份验证和授权的一种机制。

二、Jwt身份认证的原理

Jwt身份认证的原理是:客户端向服务端发送用户名和密码,服务端验证用户名和密码,如果验证通过,服务端会生成一个Jwt的Token,并将其发送给客户端,客户端收到Token之后会将其保存在本地,以后每次向服务端发起请求时,都会将这个Token放在请求头中,服务端收到请求后,会首先验证Token,如果验证通过,则认为客户端是合法的,然后再处理请求,如果验证不通过,则拒绝请求。

三、使用Jwt身份认证保护Asp.Net Core Web Api

1、首先需要安装Jwt的nuget包,在包管理器控制台中输入以下命令:

2、然后在Startup.cs文件中的ConfigureServices方法中添加以下代码,用于配置Jwt认证:

3、接着在Configure方法中添加以下代码,用于启用Jwt认证:

4、最后,在每个需要认证的Api接口上添加[Authorize]特性,以便验证Token:

以上就是使用Jwt身份认证保护Asp.Net Core Web Api的步骤,可以说是一个非常安全可靠的认证机制。