AWS
aws-amplify

AWS Amplifyのログイントークン保存先をsessionStorageに変更する

AWS Amplifyを使って認証機能を実装したアプリケーションで、タブを閉じるごとにユーザをログアウトさせたい場合の設定

Amplify.configure

AWS Amplifyの設定初期化時に、Auth -> storage にsessionStorageを指定。

import Amplify from 'aws-amplify';

Amplify.configure({
    Auth: {
        identityPoolId: 'XX-XXXX-X:XXXXXXXX-XXXX-1234-abcd-1234567890ab',
        region: 'XX-XXXX-X',
        identityPoolRegion: 'XX-XXXX-X',
        userPoolId: 'XX-XXXX-X_abcd1234',

        // OPTIONAL - customized storage object
        storage: window.sessionStorage,
    }
});

※ 今回はsessionStorage設定したが、localStorage、sessionStorageと互換性があるインターフェースを持った独自のオンメモリストアclassを指定することもできそう

確認

devtools上でも、cognitoのログイントークンがsessionStorageに保存されていることが確認できた。
スクリーンショット 2018-11-09 2.58.55.png

参考

https://aws-amplify.github.io/docs/js/authentication

https://github.com/aws-amplify/amplify-js/issues/925