При использовании passport в node.js приложении в качестве промежуточного ПО для аутентификации для потоков Oauth 2.0 (таких как Facebook, Twitter и т. Д.) Я хотел бы знать, что общие / лучшие практики для хранения токенов доступа и обновления токенов в приложении. Мне не нужно хранить учетную запись пользователя в приложении, мне просто нужен токен доступа для вызова API.
Например, если я хочу аутентифицировать пользователя у провайдера аутентификации OAuth 2.0, чтобы получить маркер доступа для использования для API на основе oauth, я могу использовать следующую стратегию паспорта :
passport.use(new OAuth2Strategy({
authorizationURL: 'https://www.example.com/oauth2/authorize',
tokenURL: 'https://www.example.com/oauth2/token',
clientID: EXAMPLE_CLIENT_ID,
clientSecret: EXAMPLE_CLIENT_SECRET,
callbackURL: "http://localhost:3000/auth/example/callback"
},
function(accessToken, refreshToken, profile, cb) {
// handle user profile and tokens
// [...]
}
));
Как и где безопасно хранить токены?
Можно ли прикрепить токены к профилю пользователя? Вот так:
function(accessToken, refreshToken, profile, cb) {
profile.accessToken = accessToken;
profile.refreshToken = refreshToken;
process.nextTick(() => return cb(null, profile))
}