vendredi 6 mars 2015

How to handle expiration of OAuth access_token using Asana node client?

Using Asana's NodeJS module (http://ift.tt/1Nr2JeE) with OAuth, how should I handle expiration of the access_token? Does the client provide some mechanism that I should use to detect this? Does it provide something I should use to get a new access_token using the refresh_token? I haven't been able to find any discussion of the refresh_token in the documentation.




I've registered my app and I'm able to successfully get credentials using the Client.app.accessTokenFromCode API. Something like this:



function handleOauthCallback(req, res) {
var client = Asana.Client.create({
clientId: CLIENT_ID,
clientSecret: CLIENT_SECRET,
redirectUri: computeRedirectUrl(req)
});
client.app.accessTokenFromCode(req.query.code).then(function(credentials) {
// store credentials
}
}


I'm storing the entire credentials object that comes back from this call and later creating a client using those credentials. Something like this:



var client = Asana.Client.create({
clientId: CLIENT_ID,
clientSecret: CLIENT_SECRET,
redirectUri: computeRedirectUrl(req)
});
var storedCredentials = getStoredCredentials();
client.useOauth({ credentials : storedCredentials });


Now that I've got a client that's initialized with the credentials I got back from Asana (which includes an access_token and refresh_token), how should I handle expiration of the access_token? Do I need to check whether it's still valid myself and ask for a new token using the refresh token? Or will the client handle it for my automatically? If the client handles it, how do I find out when it gets a new access token?


Aucun commentaire:

Enregistrer un commentaire