First commit of the new Insider version on docker
This commit is contained in:
46
models/Passport-Discord.js
Normal file
46
models/Passport-Discord.js
Normal file
@@ -0,0 +1,46 @@
|
||||
const passport = require('passport');
|
||||
const DiscordStrategy = require('passport-discord').Strategy;
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const setupFilePath = path.join('setup.json');
|
||||
const setupData = JSON.parse(fs.readFileSync(setupFilePath, 'utf-8'));
|
||||
|
||||
passport.use(new DiscordStrategy({
|
||||
clientID: setupData.discord.clientID,
|
||||
clientSecret: setupData.discord.clientSecret,
|
||||
callbackURL: `http://${setupData.domain}/auth/discord/callback`
|
||||
}, (accessToken, refreshToken, profile, done) => {
|
||||
fs.readFile('user.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
const users = JSON.parse(data);
|
||||
const user = users.find(user => user.id === profile.id);
|
||||
|
||||
if (setupData.discord.authorizedIDs.length > 0 && !setupData.discord.authorizedIDs.includes(profile.id)) {
|
||||
return done(null, false, { message: 'L\'utilisateur n\'est pas autorisé.' });
|
||||
}
|
||||
|
||||
done(null, user);
|
||||
});
|
||||
}));
|
||||
|
||||
passport.serializeUser((user, done) => {
|
||||
done(null, user);
|
||||
});
|
||||
|
||||
passport.deserializeUser((id, done) => {
|
||||
fs.readFile('user.json', 'utf8', (err, data) => {
|
||||
if (err) {
|
||||
return done(err);
|
||||
}
|
||||
|
||||
const users = JSON.parse(data);
|
||||
const user = users.find(user => user.id === id);
|
||||
done(null, user);
|
||||
});
|
||||
});
|
||||
|
||||
module.exports = passport;
|
||||
Reference in New Issue
Block a user