25 lines
620 B
TypeScript
25 lines
620 B
TypeScript
'use server';
|
|
import { getServerSession } from '../../../api/auth/[...nextauth]/auth';
|
|
import { Service } from '../page';
|
|
import { PrismaClient } from '@repo/db';
|
|
|
|
const prisma = new PrismaClient();
|
|
|
|
export const generateToken = async (service: Service) => {
|
|
const session = await getServerSession();
|
|
if (!session) return null;
|
|
|
|
const accessToken = Array.from({ length: 10 }, () =>
|
|
Math.floor(Math.random() * 10)
|
|
).join('');
|
|
|
|
const code = await prisma.oAuthToken.create({
|
|
data: {
|
|
clientId: service.id,
|
|
userId: session.user.id,
|
|
accessToken: accessToken,
|
|
},
|
|
});
|
|
return code;
|
|
};
|