Я делаю бэкэнд в express. Я использую api, которые поддерживаются только oauth1. Я использую http://www.passportjs.org/packages/passport-oauth1/, но в API, который я использую, нет никакой информации в "Профиле пользователя". Я не знаю, какой идентификатор сохранить в базе данных, чтобы потом искать пользователя, а не дублировать.
requestTokenURL: 'https://usosapps.amu.edu.pl/services/oauth/request_token',
accessTokenURL: 'https://usosapps.amu.edu.pl/services/oauth/access_token',
userAuthorizationURL: 'https://usosapps.amu.edu.pl/services/oauth/authorize',
consumerKey: process.env.USOS_CONSUMER_KEY,
consumerSecret: process.env.USOS_CONSUMER_SECRET,
callbackURL: "http:/localhost:3001/loginUsos/callback",
signatureMethod: "HMAC-SHA1"
}, function (token, tokenSecret, profile, cb) {
process.nextTick(function () {
userModel.findOne({
longing2: {
token: token,
tokenSecret: tokenSecret
}
}, async function (err, user) {
if (err) return cb(err);
if (user) return cb(null, user);
else {
const newUser = new userModel({
longing2: {
token: token,
tokenSecret: tokenSecret
}
});
await newUser.save(function (err) {
if (err) throw err;
return cb(null, newUser);
})
}
})
})
}));```
This is my code. I know that search by token is bad but i try and this work.