mirror of
https://github.com/Terncode/pixel.horse.git
synced 2026-09-24 13:55:04 +02:00
Discord auth
This commit is contained in:
@@ -8,6 +8,7 @@ import { Strategy as FacebookStrategy } from '@passport-next/passport-facebook';
|
||||
import { Strategy as GithubStrategy } from 'passport-github2';
|
||||
import { Strategy as VKontakteStrategy } from 'passport-vkontakte';
|
||||
import { Strategy as PatreonStrategy } from 'passport-patreon';
|
||||
import { Strategy as DiscordStrategy } from 'passport-discord';
|
||||
import { Profile } from '../common/interfaces';
|
||||
import { PATREON_COLOR } from '../common/colors';
|
||||
import { colorToCSS } from '../common/color';
|
||||
@@ -87,6 +88,12 @@ const providerList: OAuthProviderInfo[] = [
|
||||
color: colorToCSS(PATREON_COLOR),
|
||||
strategy: PatreonStrategy,
|
||||
},
|
||||
{
|
||||
id: 'discord',
|
||||
name: 'Discord',
|
||||
color: '#7289DA',
|
||||
strategy: DiscordStrategy,
|
||||
},
|
||||
];
|
||||
|
||||
providerList.forEach(p => p.auth = config.oauth[p.id]);
|
||||
@@ -101,6 +108,8 @@ export function getProfileUrl(profile: OAuthProfile): string | undefined {
|
||||
return `http://${profile.username}.tumblr.com/`;
|
||||
} else if (profile.provider === 'facebook') {
|
||||
return `http://www.facebook.com/${profile.id}`;
|
||||
} else if (profile.provider === 'discord') {
|
||||
return undefined;
|
||||
} else if (profile._json.attributes && profile._json.attributes.url) { // patreon
|
||||
return profile._json.attributes.url;
|
||||
} else {
|
||||
|
||||
@@ -239,7 +239,7 @@ export function authRoutes(
|
||||
|
||||
providers.filter(p => !!p.auth).forEach(({ id, strategy, auth, connectOnly, additionalOptions = {} }) => {
|
||||
const callbackURL = `${host}auth/${id}/callback`;
|
||||
const scope = id === 'patreon' ? ['users'] : ['email'];
|
||||
const scope = id === 'patreon' ? ['users'] : id === 'discord' ? ['identify', 'email'] : ['email'];
|
||||
const options = {
|
||||
...additionalOptions,
|
||||
...auth,
|
||||
|
||||
Reference in New Issue
Block a user