Research
Security News
Quasar RAT Disguised as an npm Package for Detecting Vulnerabilities in Ethereum Smart Contracts
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
react-plaid-link
Advanced tools
The react-plaid-link npm package is a React wrapper for Plaid Link, which is a quick and secure way to integrate with the Plaid API. It allows users to connect their bank accounts to your application, enabling functionalities like retrieving account balances, transaction histories, and more.
Initialize Plaid Link
This code demonstrates how to initialize Plaid Link in a React application. The `PlaidLink` component is configured with necessary props like `clientName`, `env`, `product`, `publicKey`, and `onSuccess` callback.
import React from 'react';
import { PlaidLink } from 'react-plaid-link';
const App = () => {
const onSuccess = (public_token, metadata) => {
console.log('Public Token: ', public_token);
console.log('Metadata: ', metadata);
};
return (
<PlaidLink
clientName="Your App Name"
env="sandbox"
product={['auth', 'transactions']}
publicKey="your_public_key"
onSuccess={onSuccess}
>
Connect a bank account
</PlaidLink>
);
};
export default App;
Handle onExit Callback
This code demonstrates how to handle the `onExit` callback, which is triggered when the user exits the Plaid Link flow. The `onExit` callback provides error information and metadata.
import React from 'react';
import { PlaidLink } from 'react-plaid-link';
const App = () => {
const onExit = (error, metadata) => {
console.log('Error: ', error);
console.log('Metadata: ', metadata);
};
return (
<PlaidLink
clientName="Your App Name"
env="sandbox"
product={['auth', 'transactions']}
publicKey="your_public_key"
onExit={onExit}
>
Connect a bank account
</PlaidLink>
);
};
export default App;
Handle onEvent Callback
This code demonstrates how to handle the `onEvent` callback, which is triggered for various events during the Plaid Link flow. The `onEvent` callback provides the event name and metadata.
import React from 'react';
import { PlaidLink } from 'react-plaid-link';
const App = () => {
const onEvent = (eventName, metadata) => {
console.log('Event Name: ', eventName);
console.log('Metadata: ', metadata);
};
return (
<PlaidLink
clientName="Your App Name"
env="sandbox"
product={['auth', 'transactions']}
publicKey="your_public_key"
onEvent={onEvent}
>
Connect a bank account
</PlaidLink>
);
};
export default App;
The react-stripe-elements package is a React wrapper for Stripe.js, allowing you to build custom payment forms with Stripe. It provides similar functionality in terms of integrating a third-party financial service into a React application, but it focuses on payment processing rather than bank account linking.
The react-paypal-button-v2 package is a React component for integrating PayPal's checkout buttons into your application. Like react-plaid-link, it simplifies the integration of a financial service, but it is specifically designed for handling PayPal transactions.
The react-google-login package is a React component for integrating Google login into your application. While it is not a financial service, it provides a similar user authentication flow, making it comparable in terms of user experience and integration complexity.
React hook and components for integrating with Plaid Link
React 16.8+
With npm
:
npm install --save react-plaid-link
With yarn
yarn add react-plaid-link
Please refer to the official Plaid Link docs for a more holistic understanding of Plaid Link.
Head to the react-plaid-link
storybook to try out a live demo.
See the examples folder for various complete source code examples.
This is the preferred approach for integrating with Plaid Link in React.
Note: token
can be null
initially and then set once you fetch or generate
a link_token
asynchronously.
ℹ️ See a full source code examples of using hooks:
import { usePlaidLink } from 'react-plaid-link';
// ...
const { open, ready } = usePlaidLink({
token: '<GENERATED_LINK_TOKEN>',
onSuccess: (public_token, metadata) => {
// send public_token to server
},
});
return (
<button onClick={() => open()} disabled={!ready}>
Connect a bank account
</button>
);
ℹ️ See src/types/index.ts for exported types.
Please refer to the official Plaid Link
docs for a more holistic understanding of
the various Link options and the
link_token
.
usePlaidLink
argumentskey | type |
---|---|
token | string | null |
onSuccess | (public_token: string, metadata: PlaidLinkOnSuccessMetadata) => void |
onExit | (error: null | PlaidLinkError, metadata: PlaidLinkOnExitMetadata) => void |
onEvent | (eventName: PlaidLinkStableEvent | string, metadata: PlaidLinkOnEventMetadata) => void |
onLoad | () => void |
receivedRedirectUri | string | null | undefined |
usePlaidLink
return valuekey | type |
---|---|
open | () => void |
ready | boolean |
submit | (data: PlaidHandlerSubmissionData) => void |
error | ErrorEvent | null |
exit | (options?: { force: boolean }, callback?: () => void) => void |
Handling OAuth redirects requires opening Link without any user input (such as clicking a button). This can also be useful if you simply want Link to open immediately when your page or component renders.
ℹ️ See full source code example at examples/oauth.tsx
import { usePlaidLink } from 'react-plaid-link';
// ...
const { open, ready } = usePlaidLink(config);
// open Link immediately when ready
React.useEffect(() => {
if (ready) {
open();
}
}, [ready, open]);
return <></>;
If you cannot use React hooks for legacy reasons such as incompatibility with
class components, you can use the PlaidLink
component.
ℹ️ See full source code example at examples/component.tsx
import { PlaidLink } from "react-plaid-link";
const App extends React.Component {
// ...
render() {
return (
<PlaidLink
token={this.state.token}
onSuccess={this.onSuccess}
// onEvent={...}
// onExit={...}
>
Link your bank account
</PlaidLink>
);
}
}
TypeScript definitions for react-plaid-link
are built into the npm package.
If you have previously installed @types/react-plaid-link
before this package
had types, please uninstall it in favor of built-in types.
FAQs
A React component for Plaid Link
We found that react-plaid-link demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
Socket researchers uncover a malicious npm package posing as a tool for detecting vulnerabilities in Etherium smart contracts.
Security News
Research
A supply chain attack on Rspack's npm packages injected cryptomining malware, potentially impacting thousands of developers.
Research
Security News
Socket researchers discovered a malware campaign on npm delivering the Skuld infostealer via typosquatted packages, exposing sensitive data.