Create User / Login

TalkPlus supports anonymous and token-based login. In order to use token-based login, you must call /api/users/create and /api/users/login from the REST API endpoints to create user and retrieve user’s login token.

If you need translation feature, see below.

Message translation feature is provided through Google Cloud Translation. To use this feature, register an appropriate Google Cloud Service Account Key on our dashboard.

  • To enable message translation, provide the language code (ISO-639) in translationTargetLanguage parameter when logging in.

  • Supported languages (ISO-639) can be found here.

  • 'translations' field in message object contains translated texts. Use language code as key to retrieve the text.

1. Login Check

You can check whether current session is logged in or not.

const isLoggedIn = client.isLoggedIn();

console.log(isLoggedIn);  // true or false

2. Anonymous User

You need a unique user ID and a username to login anonymously.

You need to allow Anonymous User login option under App Settings in our dashboard to use this feature.

You can enter up to 5 key-value pairs in data field. The maximum size of key is 128 characters and the maximum size of value is 1024 characters. Both key and value must be strings.

// you can specify profile image URL
await client.loginAnonymous({
    userId: 'user-123', // unique userId
    username: 'user-123', // username
    profileImageUrl: 'http://myimage.net/123.jpg',
    data: {
      metadataKey: "metadataValue"
    },
    translationTargetLanguage: 'ko', // optional
});

Response

{
    "user":
    {
        "id": "b1ab-a030-fdbb",
        "username": "test1",
        "profileImageUrl": "",
        "disablePushNotification": false,
        "data": null,
        "updatedAt": 1651819810137,
        "createdAt": 1651819810137
    }
}

3. Login Using Token

You need a unique user ID, a username and a login token to login.

Call /api/users/create and /api/users/login from our REST API endpoints to obtain a login token.

You can enter up to 5 key-value pairs in data field. The maximum size of key is 128 characters and the maximum size of value is 1024 characters. Both key and value must be strings.

await client.loginWithToken({
    userId: 'user-123', // unique userId
    username: 'user-123', // username
    loginToken: 'user_login_token', // login token issued by admin REST API
    profileImageUrl: 'http://myimage.net/123.jpg',
    data: {
      metadataKey: "metadataValue"
    },
    translationTargetLanguage: 'ko', // optional
})

Response

{
    "user":
    {
        "id": "b1ab-a030-fdbb",
        "username": "test1",
        "profileImageUrl": "",
        "disablePushNotification": false,
        "data": null,
        "updatedAt": 1651819810137,
        "createdAt": 1651819810137
    }
}

Last updated