Я не уверен, что сервис OAuth вы пытаетесь подключиться, поэтому я просто использую твиттер в качестве примера. После создания объекта OAuth вам нужно сначала запросить маркер oauth. Когда вы получаете этот токен, вам нужно перенаправить на страницу Twitter на свою страницу аутентификации, которая либо предложит им войти в систему, а затем спросит, нормально ли приложение для входа в систему.
oa.getOAuthRequestToken(function(error, oauth_token, oauth_token_secret, results){
if (error) new Error(error.data)
else {
req.session.oauth.token = oauth_token
req.session.oauth.token_secret = oauth_token_secret
res.redirect('https://twitter.com/oauth/authenticate?oauth_token='+oauth_token)
}
});
Когда вы впервые создали объект OAuth, вы устанавливаете responseURL или URL-адрес обратного вызова. Это может быть что угодно, для моего приложения это просто/oauth/callback. В этом обратном вызове вы получаете токен аутентификации oauth. Затем вы используете как токен запроса oauth, так и маркер аутентификации oauth для запроса токенов доступа. Когда вы получаете токены доступа, вы также получите все, что они передают, например, их имя пользователя.
app.get('/oauth/callback', function(req, res, next){
if (req.session.oauth) {
req.session.oauth.verifier = req.query.oauth_verifier
var oauth = req.session.oauth
oa.getOAuthAccessToken(oauth.token,oauth.token_secret,oauth.verifier,
function(error, oauth_access_token, oauth_access_token_secret, results){
if (error) new Error(error)
console.log(results.screen_name)
}
);
} else
next(new Error('No OAuth information stored in the session. How did you get here?'))
});
Надеюсь, это поможет! У меня были те же проблемы, когда я начал с этого.
Большое спасибо за это! Как вы это поняли? Trial & error или вы нашли хороший учебник? – Thomas
Не нашел учебника. Выяснилось это в основном, перейдя на документацию twitter oauth и перерываясь через исходный код Oauth модуля – mattmcmanus