FJCT_ニフクラ mobile backend(mBaaS)お役立ちブログ

スマホアプリ開発にニフクラ mobile backend(mBaaS)。アプリ開発に役立つ情報をおとどけ!

認証後のNCMB JavaScript SDKを使う際の注意

JavaScript SDKのお話なので、主にMonacaやWebアプリ、Node.jsでNCMBを利用する際の注意点になります。

JavaScript SDKはセッション情報をlocalStorage(Node.jsの場合はローカルディレクトリ)に保存します。そうすることで、再度アプリを立ち上げた場合や、二回目以降のアクセス時に再度ログインを行うことなく、認証状態を維持できるようになっています。

この時の注意点を2つほど紹介します。

セッションの有効期限に注意してください

セッションの有効期限はデフォルトで24時間となっています。1日経つと、そのセッションは無効になります。無効な状態のままNCMBへリクエストを行うと、エラーになりますので注意してください。

セッションの有効期限はアプリ設定にて延長可能です。最大168時間(7日間)となっていますので、こちらも注意してください。

f:id:mbaasdevrel:20201022153519p:plain

セッションを復元するタイミング

セッション情報を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を利用される際には注意してください。

中津川 篤司

中津川 篤司

NCMBエヴァンジェリスト。プログラマ、エンジニアとしていくつかの企業で働き、28歳のときに独立。 2004年、まだ情報が少なかったオープンソースソフトの技術ブログ「MOONGIFT」を開設し、毎日情報を発信している。2013年に法人化、ビジネスとエンジニアを結ぶDXエージェンシー「DevRel」活動をスタート。