Невозможно аннулировать IdToken Amazon CognitoC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Невозможно аннулировать IdToken Amazon Cognito

Сообщение Anonymous »

Я работаю над POC для реализации аутентификации пользователей с помощью Amazon Cognito и Amazon SDK для C#. Моя реализация использует поток аутентификации SRP с проблемами MFA. Хотя я могу успешно генерировать IdToken, AccessToken и RefreshToken для пользователей, я сталкиваюсь с проблемами при выходе пользователей из системы. Несмотря на вызов метода выхода из системы, Cognito продолжает проверять пользователей как вошедших в систему. После обширной отладки я обнаружил, что, хотя AccessToken становится недействительным, IdToken — нет. Как я могу гарантировать, что IdToken также станет недействительным во время процесса выхода из системы?
Вот мой код для входа
public async Task LoginUser(LoginUserRequest loginUserRequest)
{

var cognitoUser = await _userManager.FindByIdAsync(loginUserRequest.userName);
if (cognitoUser == null)
{
throw new Exception("Not Found");
}
var authRequest = new InitiateSrpAuthRequest
{
Password = loginUserRequest.Password
};
var authResponse = await cognitoUser.StartWithSrpAuthAsync(authRequest);
return new LoginUserResponse
{
SessionId = authResponse.SessionID,
};
}

и вот как я проверяю свой ОТП
public async Task ValidateLogin(ValidateLoginRequest validateLoginUserRequest)
{
AuthFlowResponse authResponse;

var cognitoUser = await _userManager.FindByIdAsync(validateLoginUserRequest.userName);
if (cognitoUser == null)
{
throw new Exception("Not Found");
}
var otp = _distributedCache.Get(validateLoginUserRequest.userName).ToString();
if (otp != null)
{
validateLoginUserRequest.Otp = otp;
}

var authRequest = new RespondToMfaRequest
{
SessionID = validateLoginUserRequest.SessionId,
MfaCode = validateLoginUserRequest.Otp,
ChallengeNameType = ChallengeNameType.SMS_MFA
};

try
{
authResponse = await cognitoUser.RespondToMfaAuthAsync(authRequest);
}
catch (Exception ex)
{
throw new Exception("Error Occur");
}

return new ValidateLoginResponse
{
AccessToken = authResponse.AuthenticationResult.AccessToken,
IdToken = authResponse.AuthenticationResult.IdToken,
RefreshToken = authResponse.AuthenticationResult.RefreshToken
};
}

Вот как я сейчас выхожу из системы
public async Task Logout(string username)
{
var cognitoUser = await _userManager.FindByIdAsync(username);
if (cognitoUser == null)
{
throw new Exception("Not Found");
}
cognitoUser.SignOut();
}


Подробнее здесь: https://stackoverflow.com/questions/791 ... to-idtoken
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Замените «Idtoken» на «Idtoken» Swift Win в Apple, используя Firebase
    Anonymous » » в форуме IOS
    0 Ответы
    2 Просмотры
    Последнее сообщение Anonymous
  • Отозвать токен AWS Cognito (немедленно аннулировать токены jwt) в Python
    Гость » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Гость
  • SecreThash не соответствует клиенту: xyz - aws cognito alluction_user_srp_auth (AWS Cognito - Java Spring Boot)
    Anonymous » » в форуме JAVA
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • SecreThash не соответствует клиенту: xyz - aws cognito alluction_user_srp_auth (AWS Cognito - Java Spring Boot)
    Anonymous » » в форуме JAVA
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous
  • SecreThash не соответствует клиенту: xyz - aws cognito alluction_user_srp_auth (AWS Cognito - Java Spring Boot)
    Anonymous » » в форуме JAVA
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»