Пример кода для аутентификации Jwt-Rsa-Hmac на этом веб-сайте с этим репо.
Я пытался преобразовать его из Asp.Net Core 1 в Asp.Net Core 2.
Я создал новый проект Asp.Net Cor 2.1 и после поиска необходимых изменений я нашел этот код.
Он создает токен, но при использовании токена я всегда получаю 401
(неавторизованный).
Прошло несколько дней и безуспешно ...
Буду благодарен, если кто-нибудь сможет мне помочь с этим.
Это мой стартап класс:
public class Startup
{
public Startup(IHostingEnvironment env)
{
var builder = new ConfigurationBuilder()
.SetBasePath(env.ContentRootPath)
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
}
public IConfigurationRoot Configuration { get; }
public void ConfigureServices(IServiceCollection services)
{
services.Configure<JwtSettings>(Configuration.GetSection("jwt"));
var x = services.AddSingleton<IJwtHandler, JwtHandler>();
var sp = services.BuildServiceProvider();
var jwtHandler = sp.GetService<IJwtHandler>();
services.AddAuthentication(options =>
{
options.DefaultAuthenticateScheme = JwtBearerDefaults.AuthenticationScheme;
options.DefaultChallengeScheme = JwtBearerDefaults.AuthenticationScheme;
}).AddJwtBearer(options =>
{
options.TokenValidationParameters = jwtHandler.Parameters;
});
services.AddMvc();
}
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
app.UseDeveloperExceptionPage();
loggerFactory.AddConsole(Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseAuthentication();
app.UseMvc();
}
А остальная часть примера кода находится в этом репо.
Ссылки, которые я уже изучаю:
Проверка подлинности токена перестала работать после перехода с ASP.NET Core 1 на ASP.NET Core 2