ユーザーの認証認可をおこなうためのAPIです。

Google及びAppPotの設定はGoogle OAuth認証を参照して下さい。

下記の順番で呼び出す必要があります。

処理シーケンス

  1. GetAnonymousToken(appKey, deviceUDID):anonymouseToken
  2. DeviceRegistration(deviceToken, deviceUDID, anonymouseToken, その他アプリに関する情報)
  3. Authentication(匿名トークン、クライアントID):Google認証画面へのリダイレクトURL
  4. Authentication APIで取得したGoogle認証のURLにアクセスして、ユーザーの認証を行います。認証が通った場合、予めGoogle側で指定したリダイレクトURIが返却されます
  5. Login(deviceUDID, anonymouseToken, Google認証後のリダイレクトURIのクエリパラメタに含まれるstate及びcode):ユーザー情報

GetAnonymousToken、DeviceRegistrationについては認証APIを参照して下さい。

Authenticate API

リダイレクトでGoogle認証画面を表示するためのURLを取得するためのAPIです。

URL

  • GET
    http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/auth/oidc/google/Authenticate
    

Authentication

匿名トークンを必要とします。

なし

Request parameters

Name Data Format Description
authToken String (Required) Anonymous token / user token
clientId String (Required) Googleに設定したクライアントID

Request example

http://example_host:8000/apppot/api/1/sampleApp/1_0_0/auth/oidc/google/Authenticate?authToken=dumy_token&clientId=sample.apps.googleusercontent.com

Response example

レスポンスヘッダーのLocationにGoogle認証のためのURIが返却されます。

Location:https://accounts.google.com/o/oauth2/auth?client_id=sample.apps.googleusercontent.com&redirect_uri=http://localhost:8000/stab/LoginTest.html&response_type=code&scope=openid%20email&state=sample_state&access_type=offline

Login API

Google認証結果をAppPotに渡し、ログイン処理を完了させます。
認証が成功すると、ログインしたユーザーのアカウント情報を返却します。

URL

  • POST
    http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/auth/oidc/google/Login
    

Authentication

匿名トークンを必要とします。

Header

Content-Type: application/json
apppot-token: token

Name Data Format Description
apppot-token String (Required) Anonymous token / user token

Request parameters

Name Data Format Description
companyId long (Required) companyId of user
appId String (Required) app id
appVersion String (Required) app version
authToken String (Required) 匿名トークン
deviceUDID String (Required) deviceUDID
isPush String (Required) true/false
clientId String (Required) Googleに設定したクライアントID
authzCode String (Required) Google認証後のリダイレクトURIに含まれるcodeの値
authnState String (Required) 匿名トークンのSHA-1によるハッシュ値の16進表記

Request example

  {
      "companyId":1,
      "appId": "sampleApp",
      "appVersion": "1.0.0",
      "authToken":"sample auth token",
      "deviceUDID":"XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
      "isPush":"false",
      "clientId":"sample.apps.googleusercontent.com",
      "authzCode":"sample_code",
      "authnState":"4/UoHj39eQ2mxJoq3dh0tXYJk3o5zM0RR6Mg6I-W5Alp8",
  }

Response example

  {
   "errCode": 0,
   "status": "OK",
   "description": null,
   "authInfor": {
      "userTokens": "8560ba5e81af4279a0c3bfd3d1f6827b",
      "validTime": 18000000,
      "userId": 20,
      "userInfo": {
            "account":"admin@stew.com",
            "fistName":"ryohei",
          "lastName":"sogo"
      },
      "groupsAndRoles": [
         {
            "groupId": 12,
            "groupName": "Group 1",
            "roleName": "User",
            "roleId": 4
         }
      ]
   }
}

Response properties

Name Data Format Description
errCode int Response error code: 0, 104, 106, 111, 112, 113, 114, 115, 116, 117, 119, 121, 160, 163, 198, 201
status String (Required)API result status value.
description String (Optional)Detail error
authInfo String 認証情報
authInfo.userTokens String ユーザー認証トークン
authInfo.validTime long トークン有効期限
authInfo.userId long ユーザーID
authInfo.userInfo userInfo アカウント情報
authInfo.userInfo.account String アカウント名
authInfo.userInfo.fistName String ユーザー氏名(名)
authInfo.userInfo.lastName String ユーザー氏名(性)
authInfo.groupsAndRoles groupsAndRoles ユーザー所属グループ配列
authInfo.groupsAndRoles.groupId long グループID
authInfo.groupsAndRoles.groupName String グループ名
authInfo.groupsAndRoles.roleName String ロール名
authInfo.groupsAndRoles.roleId long ロールID