Внедрение данных из JSON-файла в JWT - PullRequest
0 голосов
/ 23 января 2019

Я пытаюсь вставить настройки jwt из файла json в StartUp.ConfigureServices:

appsettings.json

..,

  "jwt": {
    "key": "some_password123TEST!",
    "issuer": "http: //localhost:Port",
    "expiryMinutes": 60
  }

JwtSettings.cs

public class JwtSettings
{
  public string Key { get; set; }
  public string Issuer { get; set; }
  public int ExpiryMinutes { get; set; }
}

Startup.cs

public void ConfigureServices(IServiceCollection services)
{
 ...
 services.Configure<JwtSettings>(Configuration.GetSection("jwt"));

  services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o =>
  {
            o.TokenValidationParameters = new TokenValidationParameters
            {
               // ValidateIssuer = true,
               ValidateIssuer = JwtSettings.Issuer ???
            ......
  });
}

Теперь, как получить мои настройки из JwtSettings.Issuer?

Я пытался добавить, чтобы добавить это к Configure метод:

app.ApplicationServices.GetService<JwtSettings>();

или

var test = app.ApplicationServices.GetService<JwtSettings>();
app.UseAuthentication(test);

но это не так.

1 Ответ

0 голосов
/ 24 января 2019

Вы можете использовать следующие коды, чтобы получить значение проблемы:

services.Configure<JwtSettings>(Configuration.GetSection("jwt"));

services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(o =>
{
    var config = services.BuildServiceProvider().GetRequiredService<IOptions<JwtSettings>>().Value;
    o.TokenValidationParameters = new TokenValidationParameters
    {
        ValidateIssuer = true,
        ValidIssuer = config.Issuer
    };
});
...