任务36:应用Jwtbearer Authentication
D:\MyDemos\jesse
新建项目:dotnet new webAPI --name JwtAuthSample
VS2017运行项目:http://localhost:5429/API/values
using Microsoft.AspNetCore.Authorization;[Authorize]
因为我本机安装的是asp.net core 2.2的项目,所以用VScode去dotnet run的方式运行不行,默认创建的API项目是https的
于是我改用VS2017去打开创建的项目:项目的属性 取消SSL
然后用VS运行项目:
加上authorize以后返回 500:
引入
using Microsoft.AspNetCore.Authentication.JwtBearer;
Startup.cs内加上这个mIDdleware
新建文件夹Models并在里面创建类:
JwtSettings.cs
namespace JwtAuthSample{ public class JwtSettings { //token是谁颁发的 public string Issuer{get;set;} //token可以给哪些客户端使用 public string AudIEnce{get;set;} //加密的密钥 public string SecretKey{get;set;} }}
需要给jwt设置一些配置信息:
@H_404_236@"@H_404_236@JwtSettings@H_404_236@": { @H_404_236@"@H_404_236@AudIEnce@H_404_236@": @H_404_236@"@H_404_236@http://localhost:5000@H_404_236@",@H_404_236@"@H_404_236@Issuer@H_404_236@": @H_404_236@"@H_404_236@http://localhost:5000@H_404_236@",@H_404_236@"@H_404_236@SecretKey@H_404_236@": @H_404_236@"@H_404_236@Hello-Key@H_404_236@" }
services.Configure<JwtSettings>(Configuration); var jwtSettings=new JwtSettings(); Configuration.Bind(@H_404_236@"@H_404_236@JwtSettings@H_404_236@",jwtSettings);
Challenge是验证的时候
上面是认证mIDdleware的配置
下面是认证jwt mIDdleware的配置
在这个命名空间内:using Microsoft.IDentityModel.Tokens; 有对称加密的一种方式:SymmetricSecurityKey
IssuerSigningKey=new SymmetricSecurityKey(这里的参数要用utf-8),所以要引入命名空间system.Text;
这样就完成了jwt的配置
public voID ConfigureServices(IServiceCollection services)
{
services.Configure<JwtSettings>(Configuration.GetSection("JwtSettings"));
var jwtSettings = new JwtSettings();
Configuration.Bind("JwtSettings",jwtSettings);
services.AddAuthentication(Options =>
{
Options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
Options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
})
.AddJwtBearer(o =>
{
o.TokenValIDationParameters = new Microsoft.IDentityModel.Tokens.TokenValIDationParameters
{
Validissuer = jwtSettings.Issuer,
ValIDAudIEnce = jwtSettings.AudIEnce,
IssuerSigningKey = new SymmetricSecurityKey(EnCoding.UTF8.GetBytes(jwtSettings.SecretKey))
};
});
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_2);
}
如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的“推荐”将是我最大的写作动力!欢迎各位转载,但是未经作者本人同意,转载文章之后必须在文章页面明显位置给出作者和原文连接,否则保留追究法律责任的权利。时间:2019-08-05 09:37:10 阅读(8) 总结
以上是内存溢出为你收集整理的任务36:应用Jwtbearer Authentication全部内容,希望文章能够帮你解决任务36:应用Jwtbearer Authentication所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)