I am trying to get the access_token for a user using the FB API + everyauth module for NodeJS, and then I will make serverside graph API requests using the Facebook_Graph_API module to actually make the requests (which requires an access token).
According to the everyauth page:
Then, from within your views, you will have access to the following helpers methods attached to the helper,
everyauth
:
everyauth.loggedIn
everyauth.user
- the User document associated with the sessioneveryauth.facebook
- The is equivalent to what is stored atreq.session.auth.facebook
, so you can do things like ...everyauth.facebook.user
- returns the user json provided from the OAuth provider.everyauth.facebook.accessToken
- returns the access_token provided from the OAuth provider for authorized API calls on behalf of the user.- And you also get this pattern for other modules - e.g.,
everyauth.twitter.user
,everyauth.github.user
, etc.
Within my .jade templates I can make the requests just fine:
- if (everyauth.facebook)
h3 Facebook User Data
p= JSON.stringify(everyauth.facebook.user)
p= 'facebook access token is '+ everyauth.facebook.accessToken
My question is, how can I fetch the access token from the server-side javascript? I noticed that within
app.get('/', function (req, res) {
res.render('home');
console.log(req.sessionStore.sessions.);
});
the req object does contain the access_token value but the corresponding JSON is very unwieldy to parse and not really practical for dozens of APIs. Is there any way I can simply retrieve the access_token from the server using everyauth?
Hypothetically I could simply use a bit of AJAX and send everyauth.facebook.accessToken back to the server from the client but I feel like this is somewhat impractical.
This section answered your question:
https://github.com/bnoguchi/everyauth/blob/master/README.md#accessing-the-user