Today I write this entry after a few late nights of personal research. I am building an app and an important part of it will be to integrate it to other services using Zapier. To do that, I need to make a REST-ful API layer with no login form, but instead to have an authorize routine which can take the user's credentials and to pass back an Access Token.
Up until now, other services I have helped establish have either used the Universal Login method, or simply with my own custom Javascript wrapper using the SDK. Neither of these solutions is going to fit my need. I did understand that from all of the available methods it had to offer, OAuth was going to fit it in some way, but I did not quite understand how I would evade having to use a login UI element.
I've now had more of a solid read over the Auth0 Authentication API documentation, and on the subject of Get Token, there are number of different types of login flows, the main key/value that determines one flow to the other is what is described in the "grant_type". What caught my eye was the Resource Owner Password flow. Using this I can pass-through the credentials from my API layer, and return back the response directly from Auth0 which contains the access token specifically for that user.
So, here is the start of my class:
When a user has their access token in the "Authorization" of their request header, I can then use getUser to get the details of that profile. I have more testing to continue with, but I hope this takes out a load of headaches for you that I ran through!
One more thing...
You are more than likely going to first need to update your your Auth0 application to accept this particular grant type. Use your Auth0 domain and client ID in to this URL and use the following body:
{
"grant_types": [
"password",
"http://auth0.com/oauth/grant-type/password-realm"
]
}
Of course, you'll need to first get your access token to make this kind of an update.
Comments
Post a Comment