add no_auth login

This commit is contained in:
Emily
2024-07-03 01:37:27 +02:00
parent b214c7f613
commit d3b173940b
5 changed files with 109 additions and 13 deletions

View File

@@ -3,8 +3,6 @@ import { OAuth2Client } from 'google-auth-library';
import { createUserJwt } from '~/server/AuthManager';
import { UserModel } from '@schema/UserSchema';
import EmailService from '@services/EmailService';
import { ProjectModel } from '@schema/ProjectSchema';
import StripeService from '~/server/services/StripeService';
const { GOOGLE_AUTH_CLIENT_SECRET, GOOGLE_AUTH_CLIENT_ID } = useRuntimeConfig()

View File

@@ -0,0 +1,49 @@
import { createUserJwt } from '~/server/AuthManager';
import { UserModel } from '@schema/UserSchema';
const { NOAUTH_USER_EMAIL, NOAUTH_USER_NAME, GOOGLE_AUTH_CLIENT_ID } = useRuntimeConfig();
const noAuthMode = GOOGLE_AUTH_CLIENT_ID.length == 0;
export default defineEventHandler(async event => {
if (!noAuthMode) {
console.error('Endpoint available only in NO_AUTH mode');
return { error: true, access_token: '' }
}
if (!NOAUTH_USER_EMAIL) {
console.error('NOAUTH_USER_EMAIL is required in NO_AUTH mode');
return { error: true, access_token: '' }
}
if (!NOAUTH_USER_NAME) {
console.error('NOAUTH_USER_NAME is required in NO_AUTH mode');
return { error: true, access_token: '' }
}
const user = await UserModel.findOne({ email: NOAUTH_USER_EMAIL });
if (user) return {
error: false,
access_token: createUserJwt({
email: user.email,
name: user.name
})
}
const newUser = new UserModel({
email: NOAUTH_USER_EMAIL,
given_name: NOAUTH_USER_NAME,
name: NOAUTH_USER_NAME,
locale: 'no-auth',
picture: '',
created_at: Date.now()
});
const savedUser = await newUser.save();
return { error: false, access_token: createUserJwt({ email: savedUser.email, name: savedUser.name }) }
});