JavaScript SDKのお話なので、主にMonacaやWebアプリ、Node.jsでNCMBを利用する際の注意点になります。
JavaScript SDKはセッション情報をlocalStorage(Node.jsの場合はローカルディレクトリ)に保存します。そうすることで、再度アプリを立ち上げた場合や、二回目以降のアクセス時に再度ログインを行うことなく、認証状態を維持できるようになっています。
この時の注意点を2つほど紹介します。
セッションの有効期限に注意してください
セッションの有効期限はデフォルトで24時間となっています。1日経つと、そのセッションは無効になります。無効な状態のままNCMBへリクエストを行うと、エラーになりますので注意してください。
セッションの有効期限はアプリ設定にて延長可能です。最大168時間(7日間)となっていますので、こちらも注意してください。
セッションを復元するタイミング
セッション情報をlocalStorageに保存するというのは前述した通りですが、このデータは ncmb.User.getCurrentUser()
を実行したタイミングで復元されます。
console.log('First', ncmb.sessionToken); // -> undefined const user = ncmb.User.getCurrentUser(); console.log('Second', ncmb.sessionToken); // -> AAAAAAAAAAAA
認証後を想定してボタンクリックなどのイベントを使うと、思いがけず未ログイン状態になっていることがあるので注意してください。必ず ncmb.User.getCurrentUser()
を事前に実行するようにしてください。
まとめ
個人的にもセッションを復元するタイミングはNCMBのインスタンスを作るときだと思っていたので、思わぬハマリどころでした。皆さんもmBaaSを利用される際には注意してください。