passport-oauth1 проблема с профилем пользователя с express - PullRequest
0 голосов
/ 04 мая 2020

Я делаю бэкэнд в 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.
...