0.1.0-alpha.0 • Published 4 years ago

express-wyre v0.1.0-alpha.0

Weekly downloads
2
License
MIT
Repository
github
Last release
4 years ago

express-wyre

express middleware for hosting Wyre verification using Plaid.

Migration Notes

  • Migrating to >=0.1.0 has deprecated the { verify } export from express-wyre in favour of a dedicated { wyre } export, which nests all dependent middleware.
    • This means you'll need to replace existing implementations of .use("wyre/verify", verify()) with .use("/wyre", wyre({ env: "test" })), which in turn generates the wyre/verify route.
    • In addition, callers are required to define their environment configuration upon invocation, whereas in the past it implicitly defaulted to { env: "test" }.

🚀 Installing

Using yarn:

yarn add express-wyre

✍️ Usage

Once installed, insert the middleware into your existing express app at an appropriate path:

import express from "express";
import { verify } from "express-wyre";

express()
  .use("/wyre/verify", verify({ env: "test" })) // sandbox mode
  .listen(3000, () => null);

In this example, your clients may then make HTTP GET requests to http://localhost:3000/wyre/verify.

In sandbox mode, you can login to Plaid using the following credentials:

user_good
pass_good

🦮 Retrieving the Access Token

The verification process served by Wyre returns an access token which is used to enumerate your authenticated user, which can be returned back to the frontend by specifying a base-64 encoded redirect URL query parameter:

const addressToReturnTokenTo = "myapp://";
const requestUri = `http://localhost:3000/wyre/verify?redirect=${btoa(addressToReturnTokenTo)}`;

Upon successful verification, the browser will be redirected to the supplied redirect URI with the base-64 encoded wyreToken:

const successRedirectUrl = `myapp://?wyreToken=${btoa(wyreAccessToken)}`;

On error, the browser will redirect to the specified URI and provide the base-64 encoded wyreError message as a URL parameter:

const errorRedirectUrl = `myapp://?wyreError=${btoa(errorMessage)}`;

✌️ Licence

MIT