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