Я хочу создать панель управления ботом. У меня БОТ и ПАНЕЛЬ работают на разных адресах, то есть в разных проектах. Связываю я их через Express и Redux.
Я читал что нужно токен хранить на сервере, а пользователю отправлять айди сессии, но не могу полностью это реализовать.
Человек на сайте, жмёт кнопку "Авторизация" и его перекидывает по адресу localhost:8000/auth (это express сервер бота).
Там выполняется этот код:
app.get('/auth', async (req, res) => {
const { code } = req.query
if (!code) {
res.redirect('https://discord.com/api/oauth2/authorize?client_id=' + config.get('BOT_CLIENT_ID') + '&redirect_uri=' + encodeURI(config.get('BOT_REDIRECT_URI') + '/auth') + '&response_type=code&scope=identify')
return
}
oauth.tokenRequest({
code: code.toString(),
scope: 'identify guilds',
grantType: 'authorization_code'
}).then((data) => {
req.session.user = data
console.log(req.session)
res.redirect('http://localhost:3000/')
})
})
Человек подтверждает вход, его обратно возвращает на 'localhost:8000/auth', но вместе с параметром в ссылке code=кучасимоволов. По этому коду запрашивается токен в дискорде и сохраняется в сессию.
И вот нужно вернуться обратно в панель бота по адресу '
localhost:3000' и там при загрузке страницы, делается запрос на '
localhost:8000/getUser'. Предполагалось что сессия для '
localhost:3000 ' сохранится, но этого не происходит и на самом деле начинается новая сессия.
Как мне передать сессию под управление панели бота?