У меня есть 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);