3. ユーザ管理機能¶
3.1. サインアップ¶
ユーザを作成します。
注釈
ユーザはアプリ毎ではなく、テナント全体で共通(シングルサインオン)となります。
curl -X POST \
-H "X-Application-Id: {app_id}" \
-H "X-Application-Key: {app_key}" \
-H "Content-Type: application/json" \
-d '{"username":"foo", "email":"foo@example.com", "password":"Passw0rD"}' \
https://{server}/api/1/{tenant}/users
JSON で、username, email, password を指定してください。
成功すると、200 OK が返り、JSON でユーザ情報が返却されます。
{
"_id": "52116f01ac521e1742000001",
"username": "foo",
"email": "foo@example.com",
"options": {},
"etag": "4a42d082-973d-11e5-94bb-57301660038b",
"createdAt": "2013-08-27T04:37:30Z",
"updatedAt": "2013-08-27T04:37:30Z"
}
ステータスコードは以下のとおりです。
- 200 OK : 正常にユーザを作成した
- 400 Bad Request : パラメータエラー
- 403 Forbidden : 認可エラー
- 409 Conflict : 既に同一ユーザが存在している
3.2. ログイン¶
curl -X POST \
-H "X-Application-Id: {app_id}" \
-H "X-Application-Key: {app_key}" \
-H "Content-Type: application/json" \
-d '{"email":"foo@example.com", "password":"Passw0rD"}' \
https://{server}/api/1/{tenant}/login
username または email と、password を指定してログインします。
ログインが成功すると、200 OK が返り、BODY でパラメータが返却されます。
{
"_id":"52116f01ac521e1742000001",
"sessionToken":"eyJ1c2VyX2lkIjp7IiRvaWQiOiAiNTIxMTZmMDFhYzUyMWUxNzQyMDAwMDAxIn0sImV4cGlyZSI6MTM3Njg3ODIzOX0=--5d44532510f4ad2236ec39a403dde3c3f704c5cd",
"expire":1376878239,
"username": "foo",
"email": "foo@example.com",
"groups": [],
"options": [],
"etag": "4a42d082-973d-11e5-94bb-57301660038b",
"createdAt": "2013-08-27T04:37:30Z",
"updatedAt": "2013-08-27T04:37:30Z",
"lastLoginAt": "2015-11-30T06:38:20Z"
}
主なパラメータは以下の通りです。
- _id: ユーザID
- sessionToken: セッショントークン。以後の API 呼び出しでは、X-Session-Token ヘッダにこの値を入れてください。
- expire: セッションの有効期限。unix time。
主なステータスコードは以下のとおりです。
- 200 OK : ログイン成功
- 400 Bad Request : パラメータエラー
- 401 Unauthorized : 認証エラー
3.3. ログアウト¶
curl -X DELETE \
-H "X-Application-Id: {app_id}" \
-H "X-Application-Key: {app_key}" \
-H "X-Session-Token: {session_token}" \
https://{server}/api/1/{tenant}/login
ログアウトを行うと、sessionToken は無効になりますので、破棄してください。
3.4. パスワードリセット¶
該当するユーザにパスワードリセット方法を記載したメールを送信します。
curl -X POST \
-H "X-Application-Id: {app_id}" \
-H "X-Application-Key: {app_key}" \
-H "Content-Type: application/json" \
-d '{"email":"foo@example.com" }' \
https://{server}/api/1/{tenant}/request_password_reset
パラメータには username または email のいずれかを指定します。
3.5. Basic認証¶
Basic認証によるユーザ認証を行うことができます。
以下はパスワードリセットのREST APIを、"foo" ユーザ(パスワード"Passw0rD")として実行する例です。 "Authorization: Basic " に続いて、"foo:Passw0rD" をBase54エンコードした文字列を指定します。
REST APIコール毎にAuthorizationヘッダを付与する必要があります。
curl -X POST \
-H "X-Application-Id: {app_id}" \
-H "X-Application-Key: {app_key}" \
-H "Authorization: Basic Zm9vOlBhc3N3MHJE" \
-H "Content-Type: application/json" \
-d '{"email":"foo@example.com" }' \
https://{server}/api/1/{tenant}/request_password_reset