This commit is contained in:
Alibek committed 2024-02-02 17:35:09 +06:00
1 parent bb852f5119
commit eeb9cc7ff8
92 files changed
+2076 -279

No files matched your search

+91
View File
@@ -0,0 +1,91 @@
import axios from "axios";
import NextAuth, { NextAuthOptions } from "next-auth";
import { JWT } from "next-auth/jwt";
import CredentialsProvider from "next-auth/providers/credentials";
interface IToken {
access: string;
}
const refreshToken = async (token: JWT): Promise<JWT> => {
const data = {
refresh: token.refresh_token,
};
const response = await axios.post<IToken>(
"https://api.kgroaduat.fishrungames.com/api/v1/token/refresh/",
data
);
return {
...token,
access_token: response.data.access,
};
};
export const authOptions: NextAuthOptions = {
providers: [
CredentialsProvider({
name: "Credentials",
credentials: {
email: {
label: "Email",
type: "text",
placeholder: "jsmith@example.com",
},
password: { label: "Password", type: "password" },
},
async authorize(credentials, req) {
if (!credentials?.email || !credentials?.password)
return null;
const { email, password } = credentials as any;
const res = await fetch(
"https://api.kgroaduat.fishrungames.com/api/v1/users/login/",
{
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({
email,
password,
}),
}
);
if (res.status === 401) {
console.log(res.status);
return null;
}
const user = await res.json();
return user;
},
}),
],
pages: {
signIn: "/sign-in",
},
session: {
strategy: "jwt",
},
callbacks: {
async jwt({ token, user }) {
if (user) return { ...token, ...user };
return refreshToken(token);
},
async session({ token, session }) {
session.access_token = token.access_token;
session.refresh_token = token.refresh_token;
return session;
},
},
};
const handler = NextAuth(authOptions);
export { handler as GET, handler as POST };
+3
View File
@@ -0,0 +1,3 @@
import CreateReportPage from "@/Pages/CreateReportPage/CreateReportPage";
export default CreateReportPage;
+3
View File
@@ -0,0 +1,3 @@
import ProfileLayout from "@/Pages/profile/ProfilePage/ProfileLayout";
export default ProfileLayout;
+3
View File
@@ -0,0 +1,3 @@
import MyReportsPage from "@/Pages/profile/MyReportsPage/MyReportsPage";
export default MyReportsPage;
-7
View File
@@ -1,7 +0,0 @@
import React from "react";
const page = () => {
return <div>page</div>;
};
export default page;
+3
View File
@@ -0,0 +1,3 @@
import PersonalDataPage from "@/Pages/profile/PersonalDataPage/PersonalDataPage";
export default PersonalDataPage;
+3
View File
@@ -0,0 +1,3 @@
import ReportDetailsPage from "@/Pages/ReportDetailsPage/ReportDetailsPage";
export default ReportDetailsPage;