Authentication

In order to use the abilities of TapTalk.io in your client app, a TapTalk instance must be initiated in each client app through user authentication with TapTalk.io server. An authenticated user account allows the instance to communicate and interact with the server. The following explains how to authenticate with the server.

When the user logs in to your application, your backend server will have to request an Authentication Ticket from TapTalk.io server. TapTalk.io server will return the requested Authentication Ticket and user ID to your backend server. The client application (iOS or Android) can then retrieve the ticket from your backend server to implement TapTalk.io's SDK by initializing the SDK using the obtained Authentication Ticket.

You can see the implementation for TapTalk.io's Mobile SDK by accessing iOS SDK Authentication or Android SDK Authentication.

IMPORTANT!

Server Key ID and Server Key Secret will be used to construct a request and add as a HTTP Header. To construct a request, please format your generated Server Key ID and Server Key Secret and wrap it to Base64, so the format will be like this:

encodeToBase64(SERVER_KEY_ID:SERVER_KEY_SECRET) *don't forget to add colon (:) between Server Key ID and Server Key Secret

Then, put the base64 string on your HTTP Header Field with key “Server-Key” and then construct URL request and parameter for the request.

Request Auth Ticket

Request auth ticket on behalf of the specified user, passing along the user's data to be saved to chat server. The auth ticket can be used to request an access token from the chat server. An auth ticket is valid for 1 hour before it expires.

The xcUserID is used to identify an existing user. If it does not exist yet, the user will be saved as a new user.

BASE_URL/v1/server/auth_ticket/request

example:
https://taptalk.io/v1/server/auth_ticket/request

Request

{
    "userIPAddress": "182.253.177.234",
    "userAgent": "AdvancedRestClient/12.1.14",
    "userPlatform": "android",
    "userDeviceID": "aaaa-bbbb-cccc-dddd",
    "xcUserID": "6",
    "fullName": "Jony",
    "email": "jony@email.com",
    "phone": "08991234567",
    "username": "jony",
    "photoThumbnailURL": "http://www.example.com/photo/thumb/6.jpg",
    "photoFullsizeURL": "http://www.example.com/photo/full/6.jpg",
    "userRoleCode": "user"
}

Success 200

{
  "status": 200,
  "error": {
    "code": "",
    "message": "",
    "field": ""
  },
  "data": {
    "userID": "6",
    "ticket": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0aWMiOiIxNTM4MzA4MTg3MzAwNDk0MDAwdTIuMzAzN2QzYWU2YjUzZmYxM2E2ZWQyYWQyZGM5YjJjOWQ1YzE2ZTE3ZTYyZTQzYjAwZjZlMDVjMWFkNTMwMjkxNGY5MGZkNDFjNDI2ZDBkN2JlZjU4NmIxMTk4NWNlNjExNWM3NWU2MjYwY2UwYjRhYjFlMGU3ODNlZWU2NWYyODJjNDRmZDcwOWFhMTA1ODM0YTMwMGRiODEwYjcyNzk5NzUxYzI5NWMxYThlNDliNDllNmM1YjhmMmQ0OGE1MDBkMTk0ZjA4NGRhMzk4YWViYjdlN2Y1ZDIxZWU4MTIwZTk3ODA4NTUwNTI5NDBjMmNkZjRiMDIxYzU0NTAxODUzNjE1MzgzMDgxODdlMjI1ZGVjNzE4YzliNWM3NWExOTBjOGI4Y2RmNDBmNWIzZTU0ZGQ4M2M3MTdjMmQ2ZjI1Njg4ZjAyZDc2NWVhYjVkZWY2NThiNGM4YmVjY2RkMTM2MWNlZDAwOTM5MzQxOWQzZmU1ZTI3ZjU5NGY1YmFkYzhhMjdmNjYzMDcyYSIsInVpZCI6MiwiZXhwIjoxNTM4MzExNzg3LCJqdGkiOiJhdDE1MzgzMDgxODczMDA0OTQwMDB1MiIsImlhdCI6MTUzODMwODE4N30.Dh_6a5wq19KBbz_2YX13MP9FM85cl1HC7Eek_0IgqUs"
  }
}

Error 4xx

{
  "status": 400,
  "error": {
    "code": "40002",
    "message": "Param 'xcUserID' is required",
    "field": "105"
  },
  "data": {}
}
{
  "status": 400,
  "error": {
    "code": "40001",
    "message": "Request headers are required (Server-Key)",
    "field": ""
  },
  "data": {}
}

Last updated