Castle Fingerprinting Script
Packaged version of Castle fingerprinting script.
Introduction
The Castle JavaScript automatically captures every user action in your web application, including clicks, taps, swipes, form submissions, and page views. We use this data to build profiles of good user behavior in order to detect the bad.
Installation
npm install --save @castleio/castle-js
yarn add @castleio/castle-js
Configuration
Basic configuration of the app
import * as Castle from '@castleio/castle-js'
Castle.configure(options);
browser version (legacy setups)
If your environment does not support modules you can use the browser version
import '@castleio/castle-js/dist/castle.browser.js'
Castle.configure(options);
Usage
Getting castle request token
import * as Castle from '@castleio/castle-js'
Castle.createRequestToken().then( (requestToken) => {
....
});
const requestToken = await Castle.createRequestToken();
See Castle Docs for more information and how to pass the token further.
form submit helper example (when cdn version is used)
<form action="/" onsubmit="Castle.injectTokenOnSubmit(event)">
<button type="submit">Submit</button>
</form>
helper is also available directly (when castle.umd.js is used)
import * as Castle from '@castleio/castle-js'
const submitHandler = (evt) => Castle.injectTokenOnSubmit(evt);
<form action="/" onsubmit="submitHandler(event)">
<button type="submit">Submit</button>
</form>
Sending page event
import * as Castle from '@castleio/castle-js'
const page = Castle.page(options);
event response can be verified with promise like call.
import * as Castle from '@castleio/castle-js'
Castle.page(options).then( (result) => { } )
Sending form event
import * as Castle from '@castleio/castle-js'
Castle.form(options);
event response can be verified with promise like call.
import * as Castle from '@castleio/castle-js'
Castle.form(options).then( (result) => { } )
form submit helper for form events
import * as Castle from '@castleio/castle-js'
const user = YOUR_USER_DATA;
const submitHandler = (evt) => Castle.formEventOnSubmit(evt, user);
<form action="/" data-castle-name="Change Profile" onsubmit="submitHandler(event)">
<input type="text" name="user_mail" data-castle-value="email">
<button type="submit">Submit</button>
</form>
Sending custom event
import * as Castle from '@castleio/castle-js'
const custom = Castle.custom(options);
event response can be verified with promise like call.
import * as Castle from '@castleio/castle-js'
Castle.custom(options).then( (result) => { } )
Upgrade from 1.x script
Before
_castle('getClientId')
After
Castle.createRequestToken().then( (requestToken) => {
});
const token = await Castle.createRequestToken();
No longer available commands for _castle(...)
:
`autoForwardClientId`, 'autoTrack', `catchHistoryErrors`, `identify`, `setUserId`, `setAccount`, `setKey`, `setAccount`, `sessionId`, `reset`, `page`, `trackPageView`, `setTrackerUrl`
Request Token is now required to be passed in the request params and it is no longer available in the cookie. Check the docs
Changelog
- 2.1.2 – view events bug fixes
- 2.1.1 – internal enhancements and stability improvements
- 2.1.0 – added page, form, custom events support, changed configuration DSL, added formEventOnSubmit helper, renamed onFormSubmit to injectTokenOnSubmit
- 2.0.4 – bug fixes
- 2.0.3 – bug fixes and stability improvements
- 2.0.2 – bug fixes
- 2.0.1 – internal enhancements
- 2.0.0 – migration from 1.x, modularization, updated DSL
Minimal Requirements:
ES3+ version supported browsers eg:
- Chrome 5+
- Firefox 3+
- IE 6+
- Safari 4+
- All modern browsers (desktop and mobile)
to use page/form functionality:
- Chrome 9+
- Firefox 6+
- IE 10+
- Safari 5+
- All modern browsers (desktop and mobile)
License
MIT