Я использую ASP.NET MVC Core с OpenIDDict. Я использую представления с аутентификацией файлов cookie и JWT для OpenIDDict. Все работает отлично, за исключением следующего сценария:
Идентификация изменена, чтобы сначала отправить пользователю электронное письмо с подтверждением, чтобы подтвердить свой адрес электронной почты. Пользователь получает ссылку по электронной почте и нажимает на нее. Затем они входят в систему. Простой. В то же время они не могут получить доступ ни к одной странице.
Но я заметил, что с помощью почтальона они могут получить доступ к решению через APi'S через OpenIDDict. Они все равно получают разрешение. И когда они авторизуются, они могут получить доступ к API.
Только что написав это, у меня была мозговая волна, и я мог просто ввести код в AuthenticationController во время действия обмена:
public async Task<IActionResult> Exchange(OpenIdConnectRequest request)
{
Debug.Assert(request.IsTokenRequest(),
"The OpenIddict binder for ASP.NET Core MVC is not registered. " +
"Make sure services.AddOpenIddict().AddMvcBinders() is correctly called.");
if (request.IsPasswordGrantType())
{
var user = await _userManager.FindByNameAsync(request.Username);
//if (user == null)
if (user == null || !(await _userManager.IsEmailConfirmedAsync(user)))
{
Работает ! Ну вот... ответил на свой вопрос. Mya поможет другим в будущем