Version for Adonis v4
Verifier for Google ReCAPTCHA v2. Not working with ReCAPTCHA Enterprise or v3
Make sure to install it using npm
or yarn
.
# npm
npm i adonis-recaptcha2
node ace configure adonis-recaptcha2
# yarn
yarn add adonis-recaptcha2
node ace configure adonis-recaptcha2
You need to receive your siteKey
and secretKey
for your domain from Google reCAPTCHA v3 Admin Console
Login and Follow the steps on this page to include the reCAPTCHA on your website.
.adonisrc.json
file.{
"providers": [
"...other packages",
"adonis-recaptcha2"
]
}
.env
file of project....
RECAPTCHA_SITE_KEY=YOUR_KEY
RECAPTCHA_SECRET_KEY=YOUR_KEY
env.ts
file of project.import Env from '@ioc:Adonis/Core/Env'
export default Env.rules({
// ...
RECAPTCHA_SITE_KEY: Env.schema.string(),
RECAPTCHA_SECRET_KEY: Env.schema.string(),
})
config/recaptcha.ts
.import Env from '@ioc:Adonis/Core/Env'
import { RecaptchaConfig } from '@ioc:Adonis/Addons/Recaptcha2'
const recaptchaConfig: RecaptchaConfig = {
// ...
siteKey: Env.get('RECAPTCHA_SITE_KEY'),
// ...
secretKey: Env.get('RECAPTCHA_SECRET_KEY'),
}
export default recaptchaConfig
start/kernel.ts
Server.middleware.registerNamed({
recaptcha: () => import('App/Middleware/Recaptcha')
})
start/routes.ts
Example:
Route.post('login', 'AuthController.login').middleware('recaptcha')
This middleware will check g-recaptcha-response
field in body request
{
"login": "admin",
"password": "admin",
"g-recaptcha-response": "osjoiadjaoisdjasijda..."
}
Field
g-recaptcha-response
it is Google reCAPTCHA v2 response
Note: Required View (@adonisjs/view)
views
in config/recaptcha.ts
const recaptchaConfig: RecaptchaConfig = {
// ...
views: true
}
recaptcha()
function in templates...
<head>
...
{{ recaptcha('script') }}
</head>
<body>
<section>
...
<form action="/login">
...
{{ recaptcha('form') }}
</form>
</section>
</body>
</html>
Version | Tag | Published |
---|---|---|
2.0.1 | latest | 2yrs ago |
1.2.1 | legacy | 3yrs ago |