Вы не можете получить выпущенные токены в функции поста Login.cs html .cs.
Это связано с тем, что Asp. net Журналы проверки учетных данных c запускаются перед логикой выдачи токена Identity Server c. В OnPostAsync
событии Login.cshtml.cs
система идентификации будет проверять пользователя в базе данных и входить в систему, используя:
var result = await _signInManager.PasswordSignInAsync(Input.Email, Input.Password, Input.RememberMe, lockoutOnFailure: true);
Если проверка пользователя пройдена, она будет перенаправлена на локальный URL-адрес, такой как /connect/authorize/callback?client_id=react&redirect_uri=https%3A%2F%2Flocalhost%3A44362%2Fauthentication%2Flogin-callback&response_type=code&scope=reactAPI%20openid%20profile&state=xxxxx&code_challenge=xxxxx&code_challenge_method=S256&response_mode=query
, что URL фактически является запросом кода авторизации OpenID Connect (PKCE). После перенаправления промежуточное ПО сервера идентификации 4 будет обрабатывать запрос кода и токена и, наконец, выдавать токены. Таким образом, в функции OnPostAsync
вы не можете получить токены.
Если вы хотите получить токены, вы можете получить токены из встроенных событий сервера идентификации , таких как TokenIssuedSuccessEvent
вы также можете получить токены со стороны клиента React, в которых событие / место для получения токенов основано на вашем требовании.