我一直坚持使用Google Authenticator为亚马逊Cognito设置MFA。我错过任何一步了吗?
我尝试按照本指南“ https://docs.aws.amazon.com/cognito/latest/developerguide/user-pool-settings-mfa-totp.html”进行操作。
我将会话传递给“ associate_software_token”,并获取了密钥,并将其转换为QR码。
将其转换为QR后,我从playstore下载了Google身份验证器并尝试继续。遗憾的是,这是我遇到的问题,Google身份验证器无法识别QR码。
def get(self):
# This is where the secret key which will be later used as password.
data = request.args
client = boto3.client('cognito-idp')
secret_response = client.associate_software_token(Session=data["session"])
# Create QR
try:
img = qrcode.make(secret_response.get('SecretCode'))
except ClientError as e:
return self.handle_boto_error(e)
temp_assets = os.path.join(ASSETS_DIRS, 'temp/')
filename = secure_filename(secret_response.get('SecretCode') + '.png')
to_save_on = os.path.join(temp_assets, filename)
print(secret_response.get('SecretCode'))
img.save(to_save_on)
return send_file(to_save_on, mimetype='image/png'), status.HTTP_200_OK
我希望它能给我TOTP,它将完成Congito Pool的整个身份验证过程。
答案 0 :(得分:0)
通过将qr转换为正确的格式来解决此问题,即:
"link = f"otpauth://totp/{SITE_NAME}:{username}?secret={secret_code}&issuer={SITE_NAME}"
而不是直接将密码解析为QR Code。