mirror of
https://git.v0id.ovh/n3wt-innov/n3wt-school.git
synced 2026-01-29 07:53:23 +00:00
refactor: Creation d'un provider et d'un systeme de middleware
This commit is contained in:
@ -1,10 +1,10 @@
|
||||
import NextAuth from 'next-auth';
|
||||
import CredentialsProvider from 'next-auth/providers/credentials';
|
||||
import { getJWT, refreshJWT } from '@/app/actions/authAction';
|
||||
|
||||
import jwt_decode from 'jsonwebtoken'; // Changed import
|
||||
import jwt_decode from 'jsonwebtoken';
|
||||
|
||||
const options = {
|
||||
secret: process.env.AUTH_SECRET,
|
||||
providers: [
|
||||
CredentialsProvider({
|
||||
name: 'Credentials',
|
||||
@ -50,9 +50,9 @@ const options = {
|
||||
}
|
||||
},
|
||||
callbacks: {
|
||||
async jwt({ token, user, trigger }) {
|
||||
async jwt({ token, user }) {
|
||||
// Si c'est la première connexion
|
||||
if (user) {
|
||||
if (user && user?.token) {
|
||||
return {
|
||||
...token,
|
||||
token: user.token,
|
||||
@ -69,23 +69,24 @@ const options = {
|
||||
// Token expiré, essayer de le rafraîchir
|
||||
try {
|
||||
const response = await refreshJWT({ refresh: token.refresh });
|
||||
if (!response) {
|
||||
if (response && response?.token) {
|
||||
return {
|
||||
...token,
|
||||
token: response.token,
|
||||
refresh: response.refresh,
|
||||
tokenExpires: jwt_decode.decode(response.token).exp * 1000
|
||||
};
|
||||
}
|
||||
else{
|
||||
throw new Error('Failed to refresh token');
|
||||
}
|
||||
|
||||
return {
|
||||
...token,
|
||||
token: response.token,
|
||||
refresh: response.refresh,
|
||||
tokenExpires: jwt_decode.decode(response.token).exp * 1000
|
||||
};
|
||||
} catch (error) {
|
||||
console.error("Refresh token failed:", error);
|
||||
return token;
|
||||
}
|
||||
},
|
||||
async session({ session, token }) {
|
||||
if (token) {
|
||||
if (token && token?.token) {
|
||||
const {user_id, droit, email} = jwt_decode.decode(token.token);
|
||||
session.user = {
|
||||
...session.user,
|
||||
|
||||
Reference in New Issue
Block a user