Skip to main content
1-Visitor
April 27, 2016
Solved

How to identify the user who invoked the service

  • April 27, 2016
  • 2 replies
  • 3655 views

Hi,

How to identify the user who invoked the service?

One option I'm aware of is based on the appKey

     var loggedInUser = Resources["CurrentSessionInfo"].GetCurrentUser();

with this approach, I had to create an appKey for each user.

What other options are available? If i didn't want to generate a new appKey for every user.

Regards

Arunkumar D

Best answer by arunkumar1

Nope.

If we invoke the service using appKey, GetCurrentUser() would give the user associated with that appKey.

Anyway, one another approach I found to identify the user is to use Authorization header. Like below:

curl -X POST -u username:password -H "Accept:application/json" -H "Content-Type:application/json" "http://hostname/Thingworx/Things/TestThing/Services/TestAPI"

I find this approach would fit me for now, instead of creating an appKey for every user.

Regards

Arunkumar D

2 replies

1-Visitor
April 27, 2016

Resources["CurrentSessionInfo"].GetCurrentUser() doesn't depend on appkeys; it returns whoever the current user is.

arunkumar11-VisitorAuthorAnswer
1-Visitor
April 28, 2016

Nope.

If we invoke the service using appKey, GetCurrentUser() would give the user associated with that appKey.

Anyway, one another approach I found to identify the user is to use Authorization header. Like below:

curl -X POST -u username:password -H "Accept:application/json" -H "Content-Type:application/json" "http://hostname/Thingworx/Things/TestThing/Services/TestAPI"

I find this approach would fit me for now, instead of creating an appKey for every user.

Regards

Arunkumar D