40 lines
989 B
TypeScript
40 lines
989 B
TypeScript
import type { NextAuthOptions } from "next-auth";
|
|
import TwitchProvider from "next-auth/providers/twitch";
|
|
|
|
export interface TwitchProfile extends Record<string, any> {
|
|
sub: string
|
|
preferred_username: string
|
|
email: string
|
|
picture: string
|
|
}
|
|
|
|
export const options: NextAuthOptions = {
|
|
providers: [
|
|
TwitchProvider({
|
|
clientId: process.env.TWITCH_CLIENT_ID as string,
|
|
clientSecret: process.env.TWITCH_CLIENT_SECRET as string,
|
|
authorization: {
|
|
params: {
|
|
scope: "openid user:read:email",
|
|
claims: {
|
|
id_token: {
|
|
email: null,
|
|
picture: null,
|
|
preferred_username: null,
|
|
},
|
|
},
|
|
},
|
|
},
|
|
idToken: true,
|
|
profile(profile) {
|
|
return {
|
|
id: profile.sub,
|
|
name: profile.preferred_username,
|
|
email: profile.email,
|
|
image: profile.picture,
|
|
}
|
|
},
|
|
})
|
|
],
|
|
secret: process.env.NEXTAUTH_SECRET
|
|
} |