keystone-6-oauth
Version:
Keystone6 Plugin that enables social logins such as Google, Twitter, Github, Facebook and others.
44 lines (38 loc) • 1.25 kB
text/typescript
import ejs from 'ejs';
import { NextAuthTemplateProps } from '../types';
const template = `
import { getContext } from '@keystone-6/core/context';
import getNextAuthPage from 'keystone-6-oauth/pages/NextAuthPage';
import keystoneConfig from '../../../../../keystone';
import * as PrismaModule from '.prisma/client';
const keystoneContext = global.keystoneContext || getContext(keystoneConfig, PrismaModule);
if (process.env.NODE_ENV !== 'production') globalThis.keystoneContext = keystoneContext
export default getNextAuthPage({
autoCreate: <%= autoCreate %>,
context: keystoneContext,
identityField: '<%= identityField %>',
listKey: '<%= listKey %>',
onSignIn: keystoneConfig.onSignIn,
onSignUp: keystoneConfig.onSignUp,
pages: keystoneConfig.pages,
providers: keystoneConfig.providers,
sessionData: '<%= sessionData %>',
sessionSecret: '<%= sessionSecret %>',
});
`;
export const authTemplate = ({
autoCreate,
identityField,
listKey,
sessionData,
sessionSecret,
}: NextAuthTemplateProps) => {
const authOut = ejs.render(template, {
autoCreate,
identityField,
listKey,
sessionData,
sessionSecret,
});
return authOut;
};