ユーザーの認証認可をおこなうためのAPIです。
Google及びAppPotの設定はGoogle OAuth認証を参照して下さい。
下記の順番で呼び出す必要があります。
処理シーケンス
  - GetAnonymousToken(appKey, deviceUDID):anonymouseToken
- DeviceRegistration(deviceToken, deviceUDID, anonymouseToken, その他アプリに関する情報)
- Authentication(匿名トークン、クライアントID):Google認証画面へのリダイレクトURL
- Authentication APIで取得したGoogle認証のURLにアクセスして、ユーザーの認証を行います。認証が通った場合、予めGoogle側で指定したリダイレクトURIが返却されます
- Login(deviceUDID, anonymouseToken, Google認証後のリダイレクトURIのクエリパラメタに含まれるstate及びcode):ユーザー情報
GetAnonymousToken、DeviceRegistrationについては認証APIを参照して下さい。
Authenticate API
リダイレクトでGoogle認証画面を表示するためのURLを取得するためのAPIです。
URL
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
Authentication
匿名トークンを必要とします。
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 |