1+ import { createToken } from "../../controllers/tokens/createToken" ;
12import { createUser } from "../../controllers/users/createUser" ;
23import { getUserByEmail } from "../../controllers/users/getUserByEmail" ;
34import { createUserVerification } from "../../controllers/users/verifications/createUserVerification" ;
45import { sendUserVerificationEmail } from "../../controllers/users/verifications/sendUserVerificationEmail" ;
6+ import { VersionFeatureFlags } from "../../models/FeatureFlags" ;
57import { encryptPassword } from "../../utils/encryption" ;
68
79export const authRegisterSchema = {
@@ -28,7 +30,7 @@ export const authRegisterSchema = {
2830 }
2931} ;
3032
31- export async function handleAuthRegisterRequest ( request : RequestWithKey , env : Env ) {
33+ export async function handleAuthRegisterRequest ( request : RequestWithKey , env : Env , context : EventContext < Env , string , null > , featureFlags : VersionFeatureFlags ) {
3234 const { firstname, lastname, email, password } = request . content ;
3335
3436 if ( firstname . length < 2 || firstname . length > 128 )
@@ -51,6 +53,23 @@ export async function handleAuthRegisterRequest(request: RequestWithKey, env: En
5153 if ( user === null )
5254 return Response . json ( { success : false , message : "Something went wrong!" } ) ;
5355
56+ if ( featureFlags . disableUserEmailVerification ) {
57+ const keyArray = new Uint8Array ( 64 ) ;
58+ crypto . getRandomValues ( keyArray ) ;
59+ const key = Array . from ( keyArray , ( decimal ) => decimal . toString ( 16 ) . padStart ( 2 , '0' ) ) . join ( '' ) ;
60+ const token = await createToken ( env . DATABASE , btoa ( key ) , user . id ) ;
61+
62+ if ( token === null )
63+ return Response . json ( { success : false , message : "Something went wrong." } ) ;
64+
65+ return Response . json ( {
66+ success : true ,
67+ token : {
68+ key : token . key
69+ }
70+ } ) ;
71+ }
72+
5473 const userVerification = await createUserVerification ( env . DATABASE , user ) ;
5574
5675 if ( userVerification === null )
@@ -59,5 +78,8 @@ export async function handleAuthRegisterRequest(request: RequestWithKey, env: En
5978 if ( ! user . email . endsWith ( "ridetracker.app" ) )
6079 await sendUserVerificationEmail ( user , userVerification ) ;
6180
62- return Response . json ( { success : true , verification : userVerification . id } ) ;
81+ return Response . json ( {
82+ success : true ,
83+ verification : userVerification . id
84+ } ) ;
6385} ;
0 commit comments