не могу получить токен JWT через API - PullRequest
0 голосов
/ 26 апреля 2020

У меня есть API для создания JWT token.in angular, когда я вызываю его, я получаю сообщение об ошибке, заблокированное политикой CORS, вот моя. net сторона ядра:

          readonly string MyAllowSpecificOrigins = "_myAllowSpecificOrigins";
            public IConfiguration Configuration { get; }

            // This method gets called by the runtime. Use this method to add services to the container.
            public void ConfigureServices(IServiceCollection services)
            {

                //services.AddCors();


                string securityKey = "My_First_Key_generated_by_myself";
                var semetricSecurityKey = new SymmetricSecurityKey(Encoding.UTF8.GetBytes(securityKey));
                services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme).AddJwtBearer(
                    options =>
                    {

                        options.TokenValidationParameters = new Microsoft.IdentityModel.Tokens.TokenValidationParameters
                        {

                            ValidateIssuer = true,
                            ValidateAudience = true,
                            ValidateIssuerSigningKey = true,
                            ValidIssuer = "user",
                            ValidAudience = "pass",
                            IssuerSigningKey = semetricSecurityKey


                        };


                    }
                    );
                services.AddCors(options =>
                {
                    options.AddPolicy(MyAllowSpecificOrigins,
                    builder =>
                    {
                        builder.WithOrigins("http://localhost:4200" );
                    });
                });

                services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            }

моя конфигурация часть:

  public void Configure(IApplicationBuilder app, IHostingEnvironment env)
    {  

        if (env.IsDevelopment())
        {
            app.UseDeveloperExceptionPage();
        }
        else
        {
            app.UseHsts();
        }
        app.UseCors(MyAllowSpecificOrigins);
        app.UseAuthentication();                  
        app.UseMvc();
    }
}

на моем контроллере я поставил следующее:

[EnableCors("_myAllowSpecificOrigins")]

я это на POSTMAN и получу токен, но я хочу получить этот токен на Angular приложение и журнал, но я получаю Нет заголовка «Access-Control-Allow-Origin» на запрошенном ресурсе. здесь на angular стороне: Мой сервис:

  url='https://localhost:44361/api/Auth/token/';

 constructor(private http:HttpClient) { }


   getPosts(x){


  return  this.http.post(this.url,{params:{username:x}});

мой компонент ЛОГИН:

    x="morteza";
this.authService.getPosts(x)
  .subscribe(result => { 
    if (result){

     this.data=result;
      console.log(result);
...