Как аутентифицировать приложение .net core из angular client с помощью identityserver4

#angular #.net-core #identityserver4

#angular #.net-core #identityserver4

Вопрос:

Мое приложение angular запущено http://localhost:4200 , а мое приложение .net core mvc со встроенной аутентификацией identityserver4 запущено https://localhost:44312/

 https://localhost:44312/connect/authorize?client_id=DocumentationGenamp;redirect_uri=http://localhost:4200/authentication/login-callbackamp;response_type=codeamp;scope=DocumentationGenAPI openid profileamp;state=d9ecb6d546e147569672b85fb8239fc7amp;code_challenge=W78Reow6OnPtRs36FcieAc1-rUPfHSvE2rHWD9BpBYwamp;code_challenge_method=S256amp;prompt=noneamp;response_mode=query
 

когда я пытаюсь пройти аутентификацию, я получаю следующую ошибку

 https://localhost:44312/home/error?errorId=CfDJ8B-i8u6rBkNAj3HnFY4JfcyXVNdYo37R9IxB3zFzX--WIeR89rnU7XNedmt_AHjo_HCw8Y04yrfDTxNnDud2_P2D_yNvqJyUhQrDp0iB_5njT13pYmY-a0N5jNdgMPYVHVY0hIF0aqx0KCkYJ9O_fga8djacA_78tizfFjWcN7mndsQxepe-Ox1UYdFHd_fuka86LaCL4JVeMA07r1NSG5LIOUv7RabIowsU0JHrbXR3NizS05-cdzsQDmFiVjl1DWfL0M3ba5y4ERSdbDFkLsay8xg4FiapvLCdcirWSkfzXnb3HPmgH9GYaBvMi0CVVQ1xn23ZRNcYTA5b4FO83kFwD-VVNi1u6YKc-PjUvFHw1InpFDXwtkl8zZWU_Iv6hg
 

Ответ №1:

После некоторых исследований наконец-то получил ответ по этой ссылке

 https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-api-authorization?view=aspnetcore-5.0
 

добавьте это в свой файл startup.cs для аутентификации с другого порта

 services.AddIdentityServer()
               .AddApiAuthorization<ApplicationUser, ApplicationDbContext>(options =>
               {
                   options.Clients.AddSPA(
                       "client name", spa =>
                       spa.WithRedirectUri("http://localhost:4200/authentication/login-callback")
                          .WithLogoutRedirectUri(
                              "http://localhost:4200/authentication/logout-callback").WithClientId("ClientId"));
                });