mirror of
https://github.com/twentyhq/twenty.git
synced 2024-12-26 13:31:45 +03:00
c69d665114
## Bug Description We are facing a bug in case recaptcha is enabled. To reproduce: - Create your recaptcha: https://www.google.com/recaptcha/about/ - update your server .env with the following variables: ``` CAPTCHA_SECRET_KEY=REPLACE_ME CAPTCHA_SITE_KEY=REPLACE_ME CAPTCHA_DRIVER=google-recaptcha ``` - Go to the login page, enter an existing user email and hit 'Reset your password'. - Add a console.log in emailPasswordResetLink in auth.resolver.ts to get the token that would be sent by email if you don't have the mailer setup - Browse: /reset-password/{passwordToken} - Update the password: <img width="1446" alt="image" src="https://github.com/user-attachments/assets/dd5b077f-293e-451a-8630-22d24ac66c42"> - See that the token is invalid You should see two calls in your developer network tab. A successful one to update the password and another to log you in. This 2nd call (Challenge) does not have the captcha token provided. It should be ## Fix - Refreshing the token on page load - providing it to the Challenge graphql call
143 lines
4.1 KiB
JSON
143 lines
4.1 KiB
JSON
{
|
|
"name": "twenty-front",
|
|
"$schema": "../../node_modules/nx/schemas/project-schema.json",
|
|
"projectType": "application",
|
|
"tags": ["scope:frontend"],
|
|
"targets": {
|
|
"build": {
|
|
"outputs": ["{options.outputPath}"],
|
|
"options": {
|
|
"outputPath": "{projectRoot}/build"
|
|
}
|
|
},
|
|
"start": {
|
|
"executor": "@nx/vite:dev-server",
|
|
"options": {
|
|
"buildTarget": "twenty-front:build",
|
|
"hmr": true
|
|
}
|
|
},
|
|
"preview": {
|
|
"executor": "@nx/vite:preview-server",
|
|
"options": {
|
|
"buildTarget": "twenty-front:build",
|
|
"port": 3001,
|
|
"open": true
|
|
}
|
|
},
|
|
"reset:env": {
|
|
"executor": "nx:run-commands",
|
|
"inputs": ["{projectRoot}/.env.example"],
|
|
"outputs": ["{projectRoot}/.env"],
|
|
"cache": true,
|
|
"options": {
|
|
"cwd": "{projectRoot}",
|
|
"command": "cp .env.example .env"
|
|
}
|
|
},
|
|
"typecheck": {},
|
|
"lint": {
|
|
"options": {
|
|
"lintFilePatterns": [
|
|
"{projectRoot}/src/**/*.{ts,tsx,json}",
|
|
"{projectRoot}/package.json"
|
|
],
|
|
"maxWarnings": 0,
|
|
"reportUnusedDisableDirectives": "error"
|
|
},
|
|
"configurations": {
|
|
"ci": { "eslintConfig": "{projectRoot}/.eslintrc-ci.cjs" },
|
|
"fix": {}
|
|
}
|
|
},
|
|
"fmt": {
|
|
"options": {
|
|
"files": "src"
|
|
},
|
|
"configurations": {
|
|
"fix": {}
|
|
}
|
|
},
|
|
"test": {},
|
|
"storybook:build": {
|
|
"options": {
|
|
"env": { "NODE_OPTIONS": "--max_old_space_size=6000" }
|
|
}
|
|
},
|
|
"storybook:serve:dev": {
|
|
"options": { "port": 6006 },
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } },
|
|
"performance": { "env": { "STORYBOOK_SCOPE": "performance" } }
|
|
}
|
|
},
|
|
"storybook:serve:static": {
|
|
"options": { "port": 6006 }
|
|
},
|
|
"storybook:coverage": {
|
|
"configurations": {
|
|
"text": {},
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } },
|
|
"performance": { "env": { "STORYBOOK_SCOPE": "performance" } }
|
|
}
|
|
},
|
|
"storybook:test": {
|
|
"options": { "port": 6006 },
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } },
|
|
"performance": { "env": { "STORYBOOK_SCOPE": "performance" } }
|
|
}
|
|
},
|
|
"storybook:serve-and-test:static": {
|
|
"options": {
|
|
"commands": [
|
|
"npx concurrently --kill-others --success=first -n SB,TEST 'nx storybook:serve:static {projectName} --port={args.port}' 'npx wait-on tcp:{args.port} && nx storybook:test {projectName} --port={args.port} --configuration={args.scope}'"
|
|
],
|
|
"port": 6006
|
|
},
|
|
"configurations": {
|
|
"docs": { "scope": "ui-docs" },
|
|
"modules": { "scope": "modules" },
|
|
"pages": { "scope": "pages" },
|
|
"performance": { "scope": "performance" }
|
|
}
|
|
},
|
|
"storybook:serve-and-test:static:performance": {},
|
|
"storybook:test:no-coverage": {
|
|
"configurations": {
|
|
"docs": { "env": { "STORYBOOK_SCOPE": "ui-docs" } },
|
|
"modules": { "env": { "STORYBOOK_SCOPE": "modules" } },
|
|
"pages": { "env": { "STORYBOOK_SCOPE": "pages" } },
|
|
"performance": { "env": { "STORYBOOK_SCOPE": "performance" } }
|
|
}
|
|
},
|
|
"graphql:generate": {
|
|
"executor": "nx:run-commands",
|
|
"defaultConfiguration": "data",
|
|
"options": {
|
|
"cwd": "{projectRoot}",
|
|
"command": "dotenv cross-var graphql-codegen -- --config={args.config}"
|
|
},
|
|
"configurations": {
|
|
"data": {
|
|
"config": "codegen.cjs"
|
|
},
|
|
"metadata": {
|
|
"config": "codegen-metadata.cjs"
|
|
}
|
|
}
|
|
},
|
|
"chromatic": {
|
|
"configurations": {
|
|
"ci": {}
|
|
}
|
|
}
|
|
}
|
|
}
|