Я использовал passportjs и паспорт-GitHub создать социальный логин в моем приложении,Используя возвращенный маркер доступа GitHub API
passport.use(new GithubStrategy(
{
clientID : configAuth.githubAuth.clientID,
clientSecret : configAuth.githubAuth.clientSecret,
callbackURL : configAuth.githubAuth.callbackURL
},
function(token, refreshToken, profile, done) {
process.nextTick(function() {
User.findOne({'github.id' : profile.id}, function(err, user) {
if (err) {
return done(err);
}
if (user) {
return done(null, user);
} else {
var newUser = new User();
newUser.github.id = profile.id,
newUser.token = token,
newUser.name = profile.displayName;
newUser.email = profile.emails[0].value;
newUser.username = profile.username;
// save
newUser.save(function(err){
if (err) {
throw err;
}
return done(null, newUser);
});
}
});
});
}
));
Теперь я использую другой компонент, называемый octonode, который требует access_token
для проверки подлинности его пользователь, был знаком во время обратного вызова такой же, как этого access_token, потому что я не кажется, что проверка подлинности при выполнении этого:
var github = require('octonode');
exports.read = function (req, res, next) {
var client = github.client();
client.get('/user?access_token=' + req.user.token, {}, function (err, status, body, headers) {
res.json(body);
});
};
а также пытались сделать это:
var client = github.client(req.user.token);
client.get('/user',{}, function...)
Я получаю пустой экран, что означает отсутствие ответа.
И вы подтвердили, что 'req.user.token' фактически возвращает значение токена? – MikeSmithDev
Да, это фактически возвращает значение, некоторый хэш-джиббери. –
Я думаю, req.user.token отличается от токена, возвращаемого github. –