Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.

Page updated Apr 30, 2024

Maintenance ModeYou are viewing Amplify Gen 1 documentation. Amplify Gen 1 has entered maintenance mode and will reach end of life on May 1, 2027. New project should use Amplify Gen 2. For existing Gen 1 projects, a migration guide and tooling are available to help you upgrade. Switch to the latest Gen 2 docs →

デバイスを記憶する

デバイスの追跡と記憶機能は、現在、Cognito ユーザープールまたはホステッド UI でのフェデレーション OAuth フローを使用する場合、ライブラリ内で利用できません。

デバイスの記憶は、多要素認証 (MFA) と組み合わせて使用する場合に便利です。Amazon Cognito ユーザープールで MFA が有効になっている場合、エンドユーザーはサインインするたびに、メールまたは SMS で受け取ったセキュリティコードを入力する必要があります。これはセキュリティを向上させますが、ユーザー体験の代償となります。

デバイスの記憶により、ユーザーがそのデバイスにサインインする際に、第2要素の要件が自動的に満たされるため、ユーザー体験の摩擦が軽減されます。

Auth カテゴリーを構成する

デバイスの記憶機能を有効にするには、Cognito ユーザープールコンソールを開きます。プロジェクトディレクトリに移動して次のコマンドを実行してください:

amplify auth console

以下のオプションを選択して Cognito ユーザープールコンソールを開きます:

? Which Console
User Pool

コンソールが開いたら、デバイストラッキングセクションまでスクロールダウンして、編集ボタンを選択します。これにより、ユーザーのデバイスの記憶の設定を構成できるページがレンダリングされます。

デバイストラッキングオプションリストの編集が表示されており、記憶しないがハイライトされています。

常に記憶またはユーザーオプトインのいずれかを選択します。これは、ユーザーのデバイスをデフォルトで記憶するか、ユーザーが選択できるようにするかによります。

Cognito ユーザープールで MFA が有効になっている場合は、多要素認証中に第2要素を抑制するオプションがあります。信頼できるデバイスを第2要素メカニズムとして使用する場合ははいを選択するか、それ以外の場合はいいえを選択します。

信頼できるデバイスの MFA をバイパスすることをユーザーに許可するオプション。

選択を完了したら、[変更を保存] をクリックします。これで、記憶されたデバイスを管理するコードの更新を開始する準備ができました。

API

デバイスを記憶する

デバイスを記憶済みとしてマークできます:

import { Auth } from 'aws-amplify';
export async function rememberDevice() {
try {
const result = await Auth.rememberDevice();
console.log(result);
} catch (error) {
console.log('Error remembering device', error);
}
}
import { Auth } from 'aws-amplify';
async function rememberDevice() {
try {
const result = await Auth.rememberDevice();
console.log(result);
} catch (error) {
console.log('Error remembering device', error);
}
}

デバイスを忘れる

次の API を使用してデバイスを忘れることができます。忘れたデバイスは記憶されず、追跡されません。記憶、忘れ、追跡の違いについては、以下を参照してください。

import { Auth } from 'aws-amplify';
export async function forgetDevice() {
try {
await Auth.forgetDevice();
} catch (error) {
console.log('Error forgetting device', error);
}
}
import { Auth } from 'aws-amplify';
async function forgetDevice() {
try {
await Auth.forgetDevice();
} catch (error) {
console.log('Error forgetting device', error);
}
}

デバイスを取得する

次のコマンドを使用して、記憶されたデバイスのリストを取得できます:

import { Auth } from 'aws-amplify';
export async function fetchDevices() {
try {
const result = await Auth.fetchDevices();
console.log(result);
} catch (err) {
console.log('Error fetching devices', err);
}
}
import { Auth } from 'aws-amplify';
async function fetchDevices() {
try {
const result = await Auth.fetchDevices();
console.log(result);
} catch (err) {
console.log('Error fetching devices', err);
}
}

用語

  • 追跡済み
    • ユーザーが新しいデバイスでサインインするたびに、クライアントはサクセスフルな認証イベントの終了時にデバイスキーを取得します。このデバイスキーを使用してソルトとパスワードベリファイアを生成し、ConfirmDevice API を呼び出します。この時点で、デバイスは追跡済みと見なされます。デバイスが追跡済み状態になると、Amazon Cognito コンソールを使用して、追跡を開始した時刻、最後の認証時刻、およびそのデバイスに関するその他の情報を確認できます。
  • 記憶済み
    • 記憶されたデバイスも追跡されます。ユーザー認証中に、記憶されたデバイスに割り当てられたデバイスキーとシークレットペアを使用してデバイスを認証し、ユーザーが以前サインインに使用したのと同じデバイスであることを確認します。
  • 記憶されていない
    • 記憶されていないデバイスは、追跡されたデバイスであり、Cognito がユーザーにデバイスを記憶することにオプトインするよう求めるように構成されていますが、ユーザーがデバイスを記憶することにオプトインしていない場合です。このユースケースは、自分が所有していないデバイスからアプリケーションにサインインするユーザー向けです。
  • 忘れた
    • デバイスを記憶または追跡したくない場合は、Auth.forgetDevice() API を使用してこのデバイスを記憶および追跡から削除できます。