ユーザーの認証認可をおこなうためのAPIです。
下記の順番で呼び出す必要があります。
- GetAnonymousToken(appKey, deviceUDID):anonymouseToken
- DeviceRegistration(deviceToken, deviceUDID, anonymouseToken, その他アプリに関する情報)
- Login(deviceUDID, anonymouseToken, その他アプリに関する情報, ユーザーに関する情報):userToken
GetAnonymousToken
ログインの必要がないAPIのために使われる匿名トークンを返します。
処理シーケンス
- 匿名トークンを生成して返します
URL
- GET
http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/anonymousTokens?appKey=xxx&deviceUDID=xxx</span>
Authentication
事前の認証は不要です。
Header
Content-Type: application/json
Request parameters
Name | Data Format | Description |
---|---|---|
appKey | String | (Required) appKey |
deviceUDID | String | (Required) device UDID |
Response example
{
"errCode": 0,
"status": "OK",
"description": null,
"results": "e0aec9d8fc834456bc55dc18f2b99a64"
}
Response properties
Name | Data Format | Description |
---|---|---|
errCode | int | Response error code: 0, 101, 198, 201 |
status | String | (Required)API result status value. |
results | String | (Optional)anonymous token if request paramters are valid. |
description | String | (Optional)Detail error |
Device registration
端末情報をデバイス管理用のマスタに登録します。
端末情報はPush通知を行う際に使用されます。
処理シーケンス
- 同一の端末情報が既に登録されている場合はエラーを返します。
- リクエストされた端末情報を登録します。
URL
- POST
http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/devices
同じアプリでDevice UDIDが既に登録済みの場合は、下記のエラーが返ります。該当のDevice UDIDを使用して、処理を続行してください。
{
"errCode": 161,
"status": "error",
"description": "The device already registered for this device and app"
}
Authentication
匿名トークンを必要とします。
Header
Content-Type: application/json
apppot-token: token
Name | Data Format | Description |
---|---|---|
apppot-token | String | (Required) AnonymousAuthToken |
Request parameters
Name | Data Format | Description |
---|---|---|
deviceToken | String | (Required) device token developer register with apple |
deviceUDID | String | (Required) Device id |
osType | String | (Required) operating system, must be iOS or Android |
deviceName | String | (Required) device’s name |
Request example
{
"deviceToken": "device token 1",
"osType": "iOS", // iOS or Android
"deviceName": "iPhone 4",
"deviceUDID": "E9J5J94J-2C5B-4F97-BC61-90284830E1DA",
}
Response example
{
"errCode": 0,
"status": "error",
"description": "The device already registered for this device and app"
}
Response properties
Name | Data Format | Description |
---|---|---|
errCode | int | Response error code: 0, 101, 121, 160, 161, 164, 198, 206 |
status | String | (Required)API result status value. |
description | String | (Optional) status detail error |
Login
AppPotにて管理されているユーザ情報を元に認証処理を行います。
認証に成功すればユーザ情報とユーザトークンを返します。失敗した場合はエラーステータスをもって通知します。
処理シーケンス
- 必須パラメータが指定されていない、または存在しない時、エラーを返します。
- アカウントをチェックし、存在しない場合はエラーを返します。
- もし加入者が存在するならば、トークンを生成します。
- オブジェクト情報を返します。
URL
- POST
http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/auth/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 |
---|---|---|
username | String | (Required) user name |
password | String | (Required) password of user |
appId | String | (Required) app id |
deviceUDID | String | (Required) deviceUDID |
isPush | String | (Required) true/false |
appVersion | String | (Required) app version |
companyId | long | (Required) companyId of user |
Request example
{
"username": "sogo@stew.com",
"password": "123456",
"appId": "sogo.app",
"appVersion": "1.0",
"deviceUDID": "E9J5J94J-2C5B-4F97-BC61-90284830E1DA",
"isPush": "false",
"companyId": 1
}
Response example
{
"errCode": 0,
"status": "OK",
"description": null,
"authInfo": {
"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 | int | トークン有効期限 |
authInfo.userId | int | ユーザーID |
authInfo.userInfo | userInfo | アカウント情報 |
authInfo.userInfo.account | String | アカウント名 |
authInfo.userInfo.fistName | String | ユーザー氏名(名) |
authInfo.userInfo.lastName | String | ユーザー氏名(性) |
authInfo.groupsAndRoles | groupsAndRoles | ユーザー所属グループ配列 |
authInfo.groupsAndRoles.groupId | int | グループID |
authInfo.groupsAndRoles.groupName | String | グループ名 |
authInfo.groupsAndRoles.roleName | String | ロール名 |
authInfo.groupsAndRoles.roleId | int | ロールID |
Logout
Authentication using for user login to the system
URL
- POST
http://{AppPot Server name}:{Port}/{Context root}/api/{companyId}/{appId}/{appVersion}/auth/logout
Authentication
ユーザー認証が完了している必要があります。
Header
Content-Type: application/json
apppot-token: token
Name | Data Format | Description |
---|---|---|
apppot-token | String | (Required) any data to store |
Response example
{
"status":"OK",
"description":null,
"errCode":0
}
Response properties
Name | Data Format | Description |
---|---|---|
errCode | int | Response error code: 0, 120, 121 |
status | String | (Required) API result status value. |
description | String | (Optional) Detail error |