Я пытаюсь получить access_token для пользователя, использующего модуль FB API + everyauth для NodeJS, а затем я сделаю запросы API-интерфейса сервера с помощью модуля Facebook_Graph_API, чтобы фактически выполнить запросы (для которых требуется токен доступа).
Согласно странице allauth:
Затем из ваших представлений вы получите доступ к следующим методам помощи, прилагаемым к помощнику,
everyauth
:
everyauth.loggedIn
everyauth.user
- Пользовательский документ, связанный с сеансомeveryauth.facebook
- Это эквивалентно тому, что хранится вreq.session.auth.facebook
, поэтому вы можете делать такие вещи, как...everyauth.facebook.user
- возвращает пользователя json, предоставленного поставщиком OAuth.everyauth.facebook.accessToken
- возвращает access_token, предоставленный поставщиком OAuth для авторизированных вызовов API от имени пользователя.- И вы также получаете этот шаблон для других модулей - например,
everyauth.twitter.user
,everyauth.github.user
и т.д.
В моих шаблонах.jade я могу сделать запросы просто прекрасными:
- if (everyauth.facebook)
h3 Facebook User Data
p= JSON.stringify(everyauth.facebook.user)
p= 'facebook access token is '+ everyauth.facebook.accessToken
Мой вопрос: как я могу получить токен доступа с серверного javascript? Я заметил, что в пределах
app.get('/', function (req, res) {
res.render('home');
console.log(req.sessionStore.sessions.);
});
объект req содержит значение access_token, но соответствующий JSON очень громоздкий для разбора и не очень практичен для десятков API. Есть ли способ, который я могу просто получить access_token с сервера, используя everyauth?
Гипотетически я мог бы просто использовать немного AJAX и отправить everyauth.facebook.accessToken обратно на сервер от клиента, но я чувствую, что это несколько непрактично.
Благодарю!
Этот раздел ответил на ваш вопрос:
https://github.com/bnoguchi/everyauth/blob/master/README.md#accessing-the-user
req.session.auth.fb.accessToken
?