How to get the current logged user in the JWT Claim?

I am developing an addon for hipchat. It is a simple To-Do App, just to understand how to develop an addon for this platform. Right now I have a sidebar where with a few input fields and a button to hit a rest api on my backend. And I was wondering how I can get the current authenticated user and send it on a JWT token.

I am aware I can call this API to get the current user:

HipChat.user.getCurrentUser()

But I would like to avoid to send the user to the backend service this way. I would rather like to invoke the auth api:

HipChat.auth.withToken( function(err, token) {})

and somehow have the current logged user in the token and send this token, along with all others fields, to my backend api.

Right now, the content of the token (among other fields) only gives me the roomId in the claims. ex:

2 answers

1 accepted

HI Valdemar - I'm not quite sure exactly what you mean by the "current logged user". The JWT that is used in the connect framework contains the userID as part of the `sub` field (the "subject" of the token). In your case, the user ID is 887. You can find more detailed information about the structure and passing of the JWT at https://developer.atlassian.com/hipchat/guide/jwt-token

If you're looking make an call to your backend from the javascript, you can use "HipChat.auth.withToken" method like you mentioned. This asynchronously creates the JWT for you to call your backend service, which will use it to authenticate the request as coming from a particular user. You can see more details of that flow at https://developer.atlassian.com/hipchat/guide/javascript-api under "Interacting with the add-on backend"