Blog

Retrieving a User Object From the User-Token

by on June 5, 2018

Suppose your app logs in a user. As a result, the app gets a user-token which uniquely identifies the user’s session with Backendless. If your app uses our SDK for Android, iOS, JS or .NET, the user-token value is managed directly by our libraries. Specifically, it is added to every API call to maintain the session and tell the server about the user’s identity. 

There are situations when you need to get the user object when your app has only the user-token. This could happen if you used persistent login in the application, which stores the user-token on the device. The implementation does not save the user object; however, there is a way to retrieve the user based on the user-token value (assuming the token is still valid). In this article, we will show you how to do this.

The technique for retrieving the user object is creating an API service that accepts a user-token in the header and retrieves the current user. We will use Codeless to create the API service because it has an intuitive interface and allows you to solve these tasks very quickly simply by building the algorithms instead of writing code.

  1. Go to Backendless Console and choose the Business Logic (Cloud Code) section from the left menu, then go to the Codeless tab and create a service.
  2. Create а method with the name retreiveUser:
    Create Service
  3. Drag and drop the getCurrentUser block from the Backendless -> Users API section as shown below:
    add-get-current-user
  4. Press the DEPLOY MODEL button.
  5. Once it is done, go to the Data section and add a user (you would also need to set up the password for that user):save user
  6. Once the user is created, go back to the API SERVICES tab in Business Logic, select the UserHelper service, and choose the retrieveUser method:login user
  7.  Fill in the login and password for the user that was created in step 5 and click the Login button.
  8. Click the INVOKE button:invoke As a result, we get a response that is a complete user object. So, by having a user token, you are able to do pretty much anything with that user object.

2 Comments

This is exactly what I’m trying to do in cloud javascript in a javascript based service. What would be the way to accomplish this in javascript and not code-less ?

Hi John,

To do it with JS, you’d need to create an API service. In your service implementation, you’d need to use “this.request.context.userId” from the invocation context object (https://backendless.com/docs/bl-js/bl_invocation_context.html). Once you have user’s id (which is the objectId value assigned to the user), you can retrieve the user fro the Users table using the “findById” API call (https://backendless.com/docs/js/data_basic_search.html)

Hope this helps.

Regards,
Mark

Leave a Reply