任务36:应用Jwtbearer Authentication

任务36:应用Jwtbearer Authentication,第1张

概述任务36:应用Jwtbearer Authentication  D:\MyDemos\jesse   新建项目:dotnet new webapi --name JwtAuthSample     VS2017运行项目:http://localhost:5429/api/values       using Microsoft.AspNetCore.Authorization; [Authori

任务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所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1051411.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-25
下一篇 2022-05-25

发表评论

登录后才能评论

评论列表(0条)

保存