mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
fix(discordStrategy): only authorize on first login (#626)
* Add files via upload * Create linode-setup.md * Create cloudflare-setup.md * Update cloudflare-setup.md * Delete 4-linode.png * Delete 3-linode.png * Add files via upload * Add files via upload * Update cloudflare-setup.md * Update linode-setup.md * Rename cloudflare-setup.md to cloudflare.md * Rename linode-setup.md to linode.md * Update mkdocs.yml * Update cloudflare.md * Update linode.md * Update README.md * Update README.md * Update linode.md sentence in Italian * v1 The frontend has been completed, along with the .env variables. However, there is an issue of infinite loading thereafter. * Fix email and remove deprecated GitHub passport * Update user_auth_system.md add How to Set Up a Github Authentication * Update .env.example Improved the comment above the GitHub client ID and secret. * Update user_auth_system.md * Update package.json * Remove unnecessary passport GitHub package * fixed conflicts fixed conflicts between Berry-13:main and danny-avila:main in api/server/index.js 45:54 * Delete e -i HEAD~2 * (WIP) Discord Login * Fix duplicate githubLoginEnabled * .env.example restore * Update user_auth_system.md Discord Login * Fix and new Feature 1. Added Discord login to .env.example. 2. Created Google, Github, and Discord icons in client\src\components\svg. 3. Added the social login option in the .env file; it fixes the ---or---. Check Discord for more information. * fix Login.tsx and Registration.tsx * Update user_auth_system.md * Update .env.example * Added OpenID Icon * quick discord icon fix * discord strategy fix * remove comment * fix discord authorize every time
This commit is contained in:
parent
f5672ddcf8
commit
981d009508
1 changed files with 6 additions and 12 deletions
|
|
@ -9,23 +9,17 @@ const discordLogin = new DiscordStrategy(
|
||||||
clientID: process.env.DISCORD_CLIENT_ID,
|
clientID: process.env.DISCORD_CLIENT_ID,
|
||||||
clientSecret: process.env.DISCORD_CLIENT_SECRET,
|
clientSecret: process.env.DISCORD_CLIENT_SECRET,
|
||||||
callbackURL: `${domains.server}${process.env.DISCORD_CALLBACK_URL}`,
|
callbackURL: `${domains.server}${process.env.DISCORD_CALLBACK_URL}`,
|
||||||
scope: ['identify', 'email'] // Request scopes
|
scope: ['identify', 'email'], // Request scopes
|
||||||
|
authorizationURL: 'https://discord.com/api/oauth2/authorize?prompt=none' // Add the prompt query parameter
|
||||||
},
|
},
|
||||||
async (accessToken, refreshToken, profile, cb) => {
|
async (accessToken, refreshToken, profile, cb) => {
|
||||||
try {
|
try {
|
||||||
const discordId = profile.id;
|
|
||||||
const email = profile.email;
|
const email = profile.email;
|
||||||
|
const discordId = profile.id;
|
||||||
|
|
||||||
const existingUser = await User.findOne({ discordId });
|
const oldUser = await User.findOne({ email });
|
||||||
if (existingUser) {
|
if (oldUser) {
|
||||||
return cb(null, existingUser);
|
return cb(null, oldUser);
|
||||||
}
|
|
||||||
|
|
||||||
const userWithEmail = await User.findOne({ email });
|
|
||||||
if (userWithEmail) {
|
|
||||||
userWithEmail.discordId = discordId;
|
|
||||||
await userWithEmail.save();
|
|
||||||
return cb(null, userWithEmail);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
let avatarURL;
|
let avatarURL;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue