Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/plotdb/captcha
captcha abstract layer and wrappers for available services
https://github.com/plotdb/captcha
Last synced: about 2 months ago
JSON representation
captcha abstract layer and wrappers for available services
- Host: GitHub
- URL: https://github.com/plotdb/captcha
- Owner: plotdb
- Created: 2020-12-26T14:53:03.000Z (about 4 years ago)
- Default Branch: master
- Last Pushed: 2022-01-07T06:15:18.000Z (almost 3 years ago)
- Last Synced: 2024-08-09T03:27:13.675Z (5 months ago)
- Language: JavaScript
- Size: 659 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
Awesome Lists containing this project
README
# captcha
Captcha wrapper for captcha services.
## Usage
include `captcha.js`:
use `captcha` object to create captcha service wrappers like this:
mycaptcha = new captcha({
init: function() { Promise.resolve('...'); },
get: function(opt) { Promise.resolve('...'); }
isVerifyFailed: function(err) { ... }
alt: { ... },
config: { ... }
lc: { ... }
});with following options:
- `init()`: function for initializing your captcha.
- will be called only once and always called automatically when get is called.
- should return Promise.
- `get(opt)`: function used to getting captcha token for verifying through backend.
- should return Promise resolving object with `token` field ( `{token: ... }` ).
- `opt` is defined by user.- if captcha verification failed, reject with an error which can be recognize with `isVerifyFailed`.
- isVerifyFailed(err): optional function to check if a given error object `err` is for verification failure.
- if `alt` is provided and when `execute` calls callback function but an error for verification failure is returned by the callback function, then `captcha` will try again with another captcha object corresponding to `alt`.
- check below section for how `execute` works.
- `alt`: optional. either an object for captcha constructor options, or a captcha object.
- if set, `alt` will be used when veritification failed with the owner `captcha` object.
- `config`: default config object for this `captcha` object.
- this is designed for providing configuration to user defined `get` and `init` functions.
- `lc`: object storing default value for storing variables defined by `get` and `init` functions.
Once constructed, you can get a token by:mycaptcha.get().then(function(opt) { opt.token; });
Since `token` usually involves server-side verification, you can use `execute` for alt captcha
postData = function({ .../* object returned by `get` */... }) {
/* should return promise */
Promise.resolve!
.then -> /* fetch, ajax with the `get` returned object */
};mycaptcha.execute({ ... /* options to `get` */ ... }, postData).then(function() { ... });
## API
- `get(opt)`: get captcha token. should return Promise resolving `{token}` object.
- `opt`: user defined option for using in user defined `get` function.
- `execute(opt, cb)`: execute cb with get returned object. return promise
- `opt`: options passed to `get`.
- `cb(ret)`: callback functions with `get` returned object as option ( `ret` ).
- `cb` should return Promise.
If verification failed, `cb` can optionally rejects with error object recognizable by `isVerifyFailed`.
- `setConfig`: update `config` object.## ReCaptcha
`captcha` ships with predefined Google Recaptcha wrapper. use it by first including the needed js:
then:
recaptcha.v2.setConfig({sitekey: '....', enabled: ture});
recaptcha.v2.get();recaptcha.v3.setConfig({sitekey: '....', enabled: ture});
recaptcha.v3.get();## License
MIT