У меня есть собственный провайдер OAuth (koa2-oauth-server
), работающий на порту 8080.
У меня есть клиентское приложение, которое использует Passport
для аутентификации запроса с помощью OAuth2Strategy
.
Следующий код настраивает паспорт для OAuth.
passport.use(
new OAuth2Strategy({
tokenURL: 'http://localhost:8080/oauth/token',
authorizationURL: 'http://localhost:8080/oauth/authorize',
clientID: 'xxx',
clientSecret: 'xxx',
callbackURL: 'http://localhost:3000/oauth/redirect'
}, (accessToken, refreshToken, profile, done) => {
console.log(profile); // This is always empty object
done(null, profile);
})
);
И следующий код генерирует токен доступа
router.post('/oauth/token', oauth.token(),
(ctx,next) => {
// TODO: Profile information not being sent
const userid = ctx.state.oauth.token.user.id;
ctx.body = db.users.find(function(aUser){
return aUser.id == userid;
})
}
);
Я хочу получать информацию о профиле в функции обратного вызова паспорта. Я попытался отправить информацию о профиле пользователя, как показано во втором блоке кода, но это не сработало.
Я попытался прочитать код koa2-oauth-server
и node-oauth2-server
, чтобы понять, как отправить информацию о профиле, но безуспешно.
Как мне настроить поставщика OAuth для отправки информации о профиле обратно клиенту?