ユーザーデータを利用する
Endorse のトークンには IMSI、IMEI、MSISDN などのサーバ側で付与される情報に加え、任意の Key Value ペアを requestParameters
として含むことが可能です。
たとえば、Web サイトや認証サーバから Endorse エンドポイントにクライアントをリダイレクトさせてトークンを取得させるような場合に、元のサイト側のセッション ID などをトークンに含ませるなどのユースケースが考えられます。
requestParameters
を利用するには、まず Endorse の SoracomEndorse.parametersToEndorse に {requestParameters: true} を設定します。
その上で、GET であればクエリパラメータとして、POST であればリクエストボディとして送信された Key Value ペアが Endorse のトークンに含まれます。
requestParameters
に {"username": "foo", "sessionId": "bar"}
を含むトークンを取得する例を示します。
- GET の場合
$ curl https://endorse.soracom.io?username=foo&sessionId=bar
また、クエリパラメータとして redirect_url
というパラメータでクライアントをリダイレクトさせたい URL を設定すると、トークンをクライアントに送る代わりに、トークンを soracom_endorse_token
というクエリパラメータとして設定しつつ、指定の URL にクライアントをリダイレクトさせます。
$ curl https://endorse.soracom.io?username=foo&sessionId=bar&redirect_url=https://example.com/login
本機能を利用する場合は、リダイレクト先の URL を SoracomEndorse.authorizedRedirectUrls
にあらかじめ設定しておく必要があります。指定された URL が設定されていない場合は、リクエストは拒否されます。
- POST の場合
$ curl -X POST -d "{\"username\":\"foo\",\"sessionId\":\"bar\"}" https://endorse.soracom.io
上記のリクエストを行った場合の応答に含まれる情報の例を下記に示します。
{
"iss": "https://soracom.io",
"aud": "soracom-endorse-audience",
"exp": 1451116301,
"jti": "hkK7qNyXzEMVAXfTq1MBuA",
"iat": 1451116121,
"nbf": 1451116061,
"sub": "soracom-endorse",
"soracom-endorse-claim": {
"imsi": "440XXXXXXXXXXXX",
"requestParameters": {
"username": "foo",
"sessionId": "bar"
}
}
}