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