Теперь я создаю приложение Nuxt.js с помощью Express и создаю внутренний сервер, созданный Express.На этот раз я создаю функцию входа в Twitter в приложении Express, используя «express-session» и «passport-twitter».Бэкэнд-сервер My Express используется BFF, он получает данные учетной записи пользователя с другого главного сервера.Поэтому моя миссия - отправка токена авторизации в твиттере и секретного токена на другой главный сервер, чтобы он отвечал данным пользователя, подключенным к учетной записи твиттера.И я сохраняю эти пользовательские данные в экспресс-сессии.
Это мой контекст кодирования.У меня возникла проблема. Как открыть общий доступ к объекту сеанса в каждом исходном файле?
Ниже приведен код моего паспортного клиента.
const passport = require('passport')
const TwitterStrategy = require('passport-twitter').Strategy
const axios = require('axios')
const env = require('./share').env
const session = require('./index').session
passport.use(
new TwitterStrategy(
{
consumerKey: env.twitterConsumerKey,
consumerSecret: env.twitterConsumerSecret,
callbackURL: env.twitterCallbackUrl
},
async function(token, tokenSecret, profile, done) {
passport.session.id = profile.id
profile.twitterToken = token
profile.twitterTokenSecret = tokenSecret
const options = {
headers: {
'Content-Type': 'application/json'
}
}
const requestData = {
accessToken: token,
secret: tokenSecret,
}
const response = await axios
.post(env.apiBaseUrl, requestData, options)
.then(res => {
return res.data
})
.catch((error) => {
throw new Error('Bad credentials')
})
session.authUser = response
return done(null, profile)
}
)
)
module.exports = { passport: passport }
, а ниже приведена часть кода основного сервера.
const session = require('express-session')
...many middleware and config code...
module.exports = {
session: session
}
Мой вопрос заключается в том, что лучше всего использовать сессионный объект в другом файле?Теперь мой код состоит в том, что объект сеанса экспортируется, и клиентский код требует этого.Но я думаю, что это не хороший код.
Пожалуйста, как поделиться сессионным объектом или как кодировать сегментацию и интеграцию?