@@ -45,98 +45,90 @@ class Authentication {
4545      } ) ; 
4646    } 
4747
48-     try  { 
49-       const  user  =  await  User . findOne ( {  email } ) ; 
50-       if  ( ! user )  { 
51-         // is user cannot be found, then they are not allowed in. 
52-         throw  new  Error ( { 
53-           status : 401 , 
54-           message :
55-             "It appears you do not have an account using this email, please contact your Codr admin to gain access." , 
48+     const  user  =  await  User . findOne ( {  email } ) ; 
49+     if  ( ! user )  { 
50+       // is user cannot be found, then they are not allowed in. 
51+       throw  new  Error ( { 
52+         status : 401 , 
53+         message :
54+           "It appears you do not have an account using this email, please contact your Codr admin to gain access." , 
55+       } ) ; 
56+     }  else  if  ( ! token )  { 
57+       try  { 
58+         // init access token 
59+         const  uuid  =  uuidv4 ( ) ; 
60+         const  accessToken  =  new  AccessToken ( uuid ) ; 
61+         await  user . updateOne ( { 
62+           accessToken : accessToken . encode ( ) , 
5663        } ) ; 
57-       }  else  if  ( ! token )  { 
58-         try  { 
59-           // init access token 
60-           const  uuid  =  uuidv4 ( ) ; 
61-           const  accessToken  =  new  AccessToken ( uuid ) ; 
62-           await  user . updateOne ( { 
63-             accessToken : accessToken . encode ( ) , 
64-           } ) ; 
65- 
66-           // send email with access code/token 
67-           const  link  = 
68-             `${ process . env . HOST } ${ process . env . API_PATH }   + 
69-             "/auth/email/verify?token="  + 
70-             encrypt ( JSON . stringify ( {  email : email ,  token : uuid  } ) ) ; 
71-           const  template  =  new  SigninTemplate ( ) ; 
72-           await  Mail . send ( await  template . html ( {  link } ) ,  { 
73-             ...template . config , 
74-             to : email , 
75-           } ) ; 
76-           return  new  Response ( { 
77-             message : "An email has been sent to your inbox." , 
78-           } ) ; 
79-         }  catch  ( e : any )  { 
80-           throw  new  Error ( { 
81-             status : 500 , 
82-             message : e ?. message  ||  "An unknown error occured" , 
83-           } ) ; 
84-         } 
85-       }  else  if  ( user . accessToken )  { 
86-         // decrypt the stored access code 
87-         const  accessToken  =  new  AccessToken ( user . accessToken ) ; 
8864
89-         // check if: 
90-         // * the tokens match 
91-         // * the token was created less than 5 minutes ago 
92-         // * and the token is not expired (has not been used already) 
93-         if  ( accessToken . isValid ( token ) )  { 
65+         // send email with access code/token 
66+         const  link  = 
67+           `${ process . env . HOST } ${ process . env . API_PATH }   + 
68+           "/auth/email/verify?token="  + 
69+           encrypt ( JSON . stringify ( {  email : email ,  token : uuid  } ) ) ; 
70+         const  template  =  new  SigninTemplate ( ) ; 
71+         await  Mail . send ( await  template . html ( {  link } ) ,  { 
72+           ...template . config , 
73+           to : email , 
74+         } ) ; 
75+         return  new  Response ( { 
76+           message : "An email has been sent to your inbox." , 
77+         } ) ; 
78+       }  catch  ( e : any )  { 
79+         throw  new  Error ( { 
80+           status : 500 , 
81+           message : e ?. message  ||  "An unknown error occured" , 
82+           details : e , 
83+         } ) ; 
84+       } 
85+     }  else  if  ( user . accessToken )  { 
86+       // decrypt the stored access code 
87+       const  accessToken  =  new  AccessToken ( user . accessToken ) ; 
9488
95-           // update access token 
96-           accessToken . use ( ) ; 
89+       // check if: 
90+       // * the tokens match 
91+       // * the token was created less than 5 minutes ago 
92+       // * and the token is not expired (has not been used already) 
93+       if  ( accessToken . isValid ( token ) )  { 
94+         // update access token 
95+         accessToken . use ( ) ; 
9796
98-            // init user update 
99-            const  update  =  { 
100-              accessToken : accessToken . encode ( ) , 
101-              refreshToken : new  AccessToken ( uuidv4 ( ) ) . encode ( ) , 
102-            } ; 
97+         // init user update 
98+         const  update  =  { 
99+           accessToken : accessToken . encode ( ) , 
100+           refreshToken : new  AccessToken ( uuidv4 ( ) ) . encode ( ) , 
101+         } ; 
103102
104-            try  { 
105-              // update user 
106-              await  user . updateOne ( update ) ; 
103+         try  { 
104+           // update user 
105+           await  user . updateOne ( update ) ; 
107106
108-              // generate JWT token 
109-              const  token  =  generateToken ( {  ...user ,  ...update  }  as  IUser ) ; 
107+           // generate JWT token 
108+           const  token  =  generateToken ( {  ...user ,  ...update  }  as  IUser ) ; 
110109
111-             // send response 
112-             return  new  Response < {  token : string  } > ( { 
113-               message : `Login successful.` , 
114-               details : {  token } , 
115-             } ) ; 
116-           }  catch  ( e : any )  { 
117-             throw  new  Error ( { 
118-               status : 500 , 
119-               message :
120-                 e ?. message  || 
121-                 "An unexpected error occured while updating a user." , 
122-             } ) ; 
123-           } 
124-         }  else 
110+           // send response 
111+           return  new  Response < {  token : string  } > ( { 
112+             message : `Login successful.` , 
113+             details : {  token } , 
114+           } ) ; 
115+         }  catch  ( e : any )  { 
125116          throw  new  Error ( { 
126117            status : 500 , 
127-             message : "Login link expired or is invalid." , 
118+             message : "An unexpected error occured while updating a user." , 
119+             details : e , 
128120          } ) ; 
129-       }  else  { 
121+         } 
122+       }  else 
130123        throw  new  Error ( { 
131124          status : 500 , 
132-           message :
133-             "An unknown error occured while authenticating an access token." , 
125+           message : "Login link expired or is invalid." , 
134126        } ) ; 
135-       } 
136-     }  catch  ( e : any )  { 
127+     }  else  { 
137128      throw  new  Error ( { 
138129        status : 500 , 
139-         message : e ?. message  ||  "An unknown error occured" , 
130+         message :
131+           "An unknown error occured while authenticating an access token." , 
140132      } ) ; 
141133    } 
142134  } 
0 commit comments