以下のページに試してみたい文言が・・・
ユーザーは、アプリのセキュリティ要件に適した期間、MFA なしでログインすることを選択できます。
ってことでやってみました。
cognitoユーザープール「サインインエクスペリエンス」
「デバイス追跡」から以下のように設定。
ユーザーデバイスを記憶 「常に記憶する」
MFAを抑制するために記憶されているデバイスを信頼する「はい」
※ 最初javascriptコマンドプロンプトから実行してみましたが、コマンドプロンプトから実行するとなぜか、
毎回違うデバイスと判断されて、MFAスキップができなかった。
通常にログインするように、実装します。
そうすると、ユーザー画面に以下のようにデバイス追跡ログが表示されます。
MFA認証をスキップできるようになりました。
次に”ユーザーは、アプリのセキュリティ要件に適した期間”の部分
MFA認証を再度戻すには、ForgetDeviceを呼び出して、一度信頼されたデバイスから削除する必要があります。
ので、getDeviceで取得される「DeviceCreateDate」が最後にMFA認証した日時に該当します。
※ソースコード汚いですが・・・・。
javascriptです。
cognitoUser.getDevice({
onSuccess: function (result) {
var jsonString = JSON.stringify(result);
const parsed = JSON.parse(jsonString);
var createDate = new Date(result.Device.DeviceCreateDate);
var today = new Date();
if (today.getDate() - createDate.getDate() == 1) {
cognitoUser.forgetDevice({
onSuccess: function (result) {
console.log('forgetDevice: ' + result);
},
onFailure: function (err) {
alert(err.message || JSON.stringify(err));
},
});
}
}