ユーザーの認証認可をおこなうための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 |