NIFCLOUD-mbaas / UserCommunity

ニフクラ mobile backend ユーザーコミュニティ
https://mbaas.nifcloud.com/
81 stars 18 forks source link

【過去質問】アプリセッショントークンX-NCMB-Apps-Session-Tokenの取得方法について #1033

Open ncmbsupport opened 5 years ago

ncmbsupport commented 5 years ago

PHPで会員管理機能を利用したく、会員情報を取得するREST APIを使おうとしています。 共通ヘッダの一つに X-NCMB-Apps-Session-Token があると思いますが、 こちらはログインしたら発行されるという認識で合っていますでしょうか。

ドキュメント:共通リクエストヘッダー

そして、以下の流れでアプリ側と連携して実装したいと考えています。

  1. でのセッショントークンAの取得方法を教えていただけますでしょうか。

  2. まず、アプリ側でSDKを使って、ユーザAとしてログインを行います。 (セッショントークンAが発行されると思います)

  3. そのあと、セッショントークンAをPHPサーバに渡します。

  4. PHP側 でREST APIでセッショントークンAを持ってユーザーAの情報を GETするリクエストを実行します。

ncmbsupport commented 5 years ago

X-NCMB-Apps-Session-Token:アプリセッショントークン」は、ログイン中ユーザーからのリクエストだと判断するためにつけられたヘッダー情報であり、ログイン時に取得されたセッショントークンを設定する必要があります。なお、SDKをご利用の場合も同様に、ログイン時にセッショントークンが発行されます。そのセッショントークンはcurrentUserというユーザオブジェクトに設定され、APIリクエスト時には自動的に付与されます。

ご希望の使い方から、トークンの発行および取得方法は各プラットフォーム・SDKでは以下のように案内いたしますので、ご参考になればと思います。

■RESTAPIをご利用の場合

ログインAPIをリクエストし、認証が成功した場合、レスポンスには発行されたセッショントークンが含まれます。こちらのセッショントークンを取得し、リクエストヘッダー X-NCMB-Apps-Session-Token に設定していただければ、認証された会員としてREST APIリクエストを実施することが可能です。 会員ログイン(REST API)

■Monaca(JS SDK)をご利用の場合

SDK経由にてログインいただければ、それ以降のAPIリクエスト時には自動的にcurrentUserのアプリセッショントークンが設定されます。 会員管理(Monaca) NCMBUser リファレンス(JS SDK)

var currentUser = ncmb.User.getCurrentUser(); を実行することで、ローカルに保存されているカレントユーザー情報からcurrentUser ユーザオブジェクトに設定され、ユーザオブジェクトのsessionToken取得することができます。

■iOS SDKをご利用の場合

JS SDK同様、SDK経由にてログインいただければ、それ以降のAPIリクエスト時には自動的にcurrentUserのアプリセッショントークンが設定されます。 会員管理(iOS)

NCMBUser *currentUser = [NCMBUser currentUser]; を実行することで、ローカルに保存されているカレントユーザー情報からcurrentUser オブジェクトに設定され、currentUser オブジェクトのsessionTokenを取得することができます。

■Android SDKをご利用の場合

iOS SDK, JS SDK同様、SDK経由にてログインいただければ、それ以降のAPIリクエスト時には自動的にcurrentUserのアプリセッショントークンが設定されます。 会員管理(Android)

NCMBUser user = NCMBUser.getCurrentUser(); を実行することで、ローカルに保存されているカレントユーザー情報からuser オブジェクトに設定され、ユーザオブジェクトの getSessionToken() を呼び出すことでセッショントークンを取得することができます。