Canopy Connect Components is a set of prebuilt UI components for building your authentication flow. It tokenizes the credentials within a Component without having them touch your server.
Installation
Include Canopy Connect Components in your application, you can do so through the following methods:
Static
<script src="https://components.usecanopy.com/v1/cc-components.js"></script>Note: this is a UMD module, if RequireJS/AMD are defined, they will be used. Otherwise CanopyConnectComponents will be set on the window.
Subresource Integrity (SRI) verificationDo not use Subresource Integrity (SRI) verification in the script tag. Canopy Connect may deploy updates and improvements to Components. Using a Subresource Integrity check will fail when we deploy updates to Components.
Dynamic
const script = document.createElement('script');
script.src = "https://components.usecanopy.com/v1/cc-components.js";
document.head.append(script);
script.onerror = () => {
// handle failure attempt
};Usage
Initialize a Components Form:
const form = CanopyConnectComponents.form(options)For available Form options, refer to the Reference Documentation
Form fields are fully customizable. Learn more here.
Then, use your form to mount the available input fields:
const { username, password, thirdfield } = form.components;
form.on('ready', () => {
// components are mounted and ready for input
});
if (username) {
username.mount("#username"); // Use any selector or element object
}
if (password) {
password.mount("#password"); // Use any selector or element object
}
if (thirdfield) {
thirdfield.mount("#thirdfield"); // Use any selector or element object
}For more FieldComponent methods and events, refer to the Reference Documentation
Then, let your user enter their credentials and provide them with a button to submit those credentials.
document.getElementById("your-submit-button").on("click", async () => {
const { errors, tokens } = await form.submit();
if (errors) {
// display form errors
return;
}
const { username, password, thirdfield } = tokens;
// submit the tokens to POST /consentAndConnect or POST /connect
});