Я использую ASP.NET MVC Core с OpenIDDict. Я использую представления с аутентификацией cookie и JWT для OpenIDDict. Все работает отлично для следующего экрана:Подтверждение электронной почты зарегистрированного пользователя 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)))
{
Works! Вот и пошли ... ответил на мой собственный вопрос. Mya поможет другим в будущем
Спасибо. Но это дополнение к AddIdentity - это то, что запускает его в первую очередь! Таким образом, ваше право, которое обеспечивает отправку подтверждения электронной почты пользователю. Изменения в моем сообщении - это то, как тогда обрабатывать его из OpenIdDict, так как это также необходимо проверить. Кроме того, для полноты, проверка электронной почты должна быть опубликована во внешних проверках поставщиков, поскольку социальные сети не нуждаются в этом – Bhail
Вы пропустили мою точку зрения: использование 'IsEmailConfirmedAsync' в вашем собственном коде не обязательно, как это сделано для вас 'CanSignInAsync', когда включена опция' RequireEmailConfirmation'. – Pinpoint
@Bhail https://github.com/openiddict/openiddict-samples/blob/master/samples/PasswordFlow/AuthorizationServer/Controllers/AuthorizationController.cs#L52 – Pinpoint