如何在.NET Core 2.0中实现JWT身份验证?

时间:2017-10-02 08:40:11

标签: .net-core jwt

我在.NET Core 2.0中实现JWT令牌身份验证时遇到了一些麻烦。我已经阅读了很多在线博客文章,但是他们现在已经过时,因为他们是.NET Core 1.x。

我还发现很难找到有关如何生成和发布令牌的任何文档。在.NET Framework Web API中,这完全是神奇的#39;用框架代码处理。

我正在使用自定义标识实体和自定义商店实现以及Angular前端构建API。

我正在寻找一种在API中使用Authorizaton: Bearer {token}端点生成令牌的方法,然后在通过http请求中的style.xml标头传入​​令牌时对请求进行身份验证和授权?

2 个答案:

答案 0 :(得分:0)

在Startup.cs中 - >配置服务,添加以下内容,使用您的设置进行更新:

services.AddAuthentication(o =>
{
o.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
o.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.Audience = "your audience";
options.ClaimsIssuer = "claims issuer";
options.TokenValidationParameters = new TokenValidationParameters
{
ValidIssuer = "claims issuer",
IssuerSigningKey = { your signing key }
};
});

接下来,在配置中:

app.UseAuthentication();
app.UseMvc();

您必须确保UseAuthentication在UseMvc之前才能使用。

以前在Configure方法中的所有内容现在都已移至“服务”部分:)

查看此博客文章以获取示例,以及指向您可以获取示例项目的repo的链接:Shawn Wildermuth's Blog

答案 1 :(得分:0)

使用下面的链接进行实施。

Part I

Part II

对于授权,请使用authorize属性为

[Authorize(AuthenticationSchemes = JwtBearerDefaults.AuthenticationScheme)]

因为我们已经在startup.cs中注册了单独的身份验证方案,因此将为JwtBearerDefaults.AuthenticationScheme创建cookie。

相关问题