@@ -7,7 +7,7 @@ import App from "./app.js";
77import Mail from "./mail/index.js" ;
88import Email from "../classes/Email.js" ;
99import SigninTemplate from "../classes/Mail/Template/Signin.js" ;
10- import User from "../models/User.js" ;
10+ import User , { IUser } from "../models/User.js" ;
1111import Response from "../classes/Response.js" ;
1212import { generateToken } from "../classes/JWT.js" ;
1313import Error from "../classes/Error.js" ;
@@ -90,32 +90,36 @@ class Authentication {
9090 // * the token was created less than 5 minutes ago
9191 // * and the token is not expired (has not been used already)
9292 if ( accessToken . isValid ( token ) ) {
93- // generate JWT token
94- const token = generateToken ( user ) ;
9593
96- // update access code
94+ // update access token
9795 accessToken . use ( ) ;
9896
99- // update user
100- return user
101- . updateOne ( {
102- accessToken : accessToken . encode ( ) ,
103- refreshToken : new AccessToken ( uuidv4 ( ) ) . encode ( ) ,
104- } )
105- . then ( ( ) => {
106- return new Response < { token : string } > ( {
107- message : `Login successful.` ,
108- details : { token } ,
109- } ) ;
110- } )
111- . catch ( e => {
112- throw new Error ( {
113- status : 500 ,
114- message :
115- e ?. message ||
116- "An unexpected error occured while updating a user." ,
117- } ) ;
97+ // init user update
98+ const update = {
99+ accessToken : accessToken . encode ( ) ,
100+ refreshToken : new AccessToken ( uuidv4 ( ) ) . encode ( ) ,
101+ } ;
102+
103+ try {
104+ // update user
105+ await user . updateOne ( update ) ;
106+
107+ // generate JWT token
108+ const token = generateToken ( { ...user , ...update } as IUser ) ;
109+
110+ // send response
111+ return new Response < { token : string } > ( {
112+ message : `Login successful.` ,
113+ details : { token } ,
114+ } ) ;
115+ } catch ( e : any ) {
116+ throw new Error ( {
117+ status : 500 ,
118+ message :
119+ e ?. message ||
120+ "An unexpected error occured while updating a user." ,
118121 } ) ;
122+ }
119123 } else
120124 throw new Error ( {
121125 status : 500 ,
0 commit comments