mirror of
https://github.com/Litlyx/litlyx
synced 2025-12-10 07:48:37 +01:00
72 lines
2.1 KiB
TypeScript
72 lines
2.1 KiB
TypeScript
|
|
import { createUserJwt } from '~/server/AuthManager';
|
|
import { UserModel } from '@schema/UserSchema';
|
|
import EmailService from '@services/EmailService';
|
|
|
|
const config = useRuntimeConfig();
|
|
|
|
export default defineEventHandler(async event => {
|
|
|
|
const { code } = getQuery(event);
|
|
console.log('CODE', code);
|
|
|
|
const redirect_uri = 'http://127.0.0.1:3000'
|
|
|
|
const res = await fetch(`https://github.com/login/oauth/access_token?client_id=${config.GITHUB_AUTH_CLIENT_ID}&client_secret=${config.GITHUB_AUTH_CLIENT_SECRET}&code=${code}&redirect_url=${redirect_uri}`, {
|
|
headers: {
|
|
"Accept": "application/json",
|
|
"Accept-Encoding": "application/json",
|
|
},
|
|
});
|
|
|
|
const data = await res.json();
|
|
|
|
const access_token = data.access_token;
|
|
|
|
console.log(data);
|
|
|
|
return sendRedirect(event,`http://127.0.0.1:3000/login?github_access_token=${access_token}`)
|
|
|
|
|
|
// const origin = event.headers.get('origin');
|
|
|
|
// const tokenResponse = await client.getToken({
|
|
// code: body.code,
|
|
// redirect_uri: origin || ''
|
|
// });
|
|
|
|
// const tokens = tokenResponse.tokens;
|
|
|
|
// const ticket = await client.verifyIdToken({
|
|
// idToken: tokens.id_token || '',
|
|
// audience: GOOGLE_AUTH_CLIENT_ID,
|
|
// });
|
|
|
|
// const payload = ticket.getPayload();
|
|
// if (!payload) return { error: true, access_token: '' };
|
|
|
|
|
|
// const user = await UserModel.findOne({ email: payload.email });
|
|
|
|
// if (user) return { error: false, access_token: createUserJwt({ email: user.email, name: user.name }) }
|
|
|
|
|
|
// const newUser = new UserModel({
|
|
// email: payload.email,
|
|
// given_name: payload.given_name,
|
|
// name: payload.name,
|
|
// locale: payload.locale,
|
|
// picture: payload.picture,
|
|
// created_at: Date.now()
|
|
// });
|
|
|
|
// const savedUser = await newUser.save();
|
|
|
|
// setImmediate(() => {
|
|
// console.log('SENDING WELCOME EMAIL TO', payload.email);
|
|
// if (payload.email) EmailService.sendWelcomeEmail(payload.email);
|
|
// });
|
|
|
|
// return { error: false, access_token: createUserJwt({ email: savedUser.email, name: savedUser.name }) }
|
|
|
|
}); |