Continue a grant request
During a grant request flow, an authorization server can require an individual (typically a client’s end user) to approve the grant by interacting directly with the server. For example, by tapping an Approve button on a web page provided by the auth server.
After the individual approves the grant, the auth server sends the client an interaction reference. The client must send a continuation request containing the reference back to the authorization server to obtain an access token.
These code snippets enable an authorized client to send a grant continuation request to the authorization server.
Before you begin
We recommend creating a wallet account on Rafiki.Money, a test wallet provider that’s part of the Interledger testnet. Creating an account allows you to test your client against the Open Payments API using an ILP-enabled wallet funded with play money.
Issue grant continuation request
- Node 18
- A package manager such as NPM or PNPM
-
Open Payments SDK
- TSX
Additional configuration
Add "type": "module"
to package.json
Add the following to tsconfig.json
Get started
Import dependencies
import { createAuthenticatedClient } from "@interledger/open-payments";
Initialize Open Payments client
const client = await createAuthenticatedClient({
walletAddressUrl: WALLET_ADDRESS,
privateKey: PRIVATE_KEY_PATH,
keyId: KEY_ID,
});
Continue grant
const grant = await client.grant.continue(
{
accessToken: CONTINUE_ACCESS_TOKEN,
url: CONTINUE_URI,
},
{
interact_ref: interactRef,
},
);
Output
console.log("OUTGOING_PAYMENT_ACCESS_TOKEN =", grant.access_token.value);
console.log(
"OUTGOING_PAYMENT_ACCESS_TOKEN_MANAGE_URL =",
grant.access_token.manage,
);
Run tsx path/to/directory/index.ts
.
- Node 18 or higher
- A package manager such as NPM or PNPM
-
Open Payments SDK
Additional configuration
Add "type": "module"
to package.json
Get started
Import dependencies
import { createAuthenticatedClient } from "@interledger/open-payments";
Initialize Open Payments client
const client = await createAuthenticatedClient({
walletAddressUrl: WALLET_ADDRESS,
privateKey: PRIVATE_KEY_PATH,
keyId: KEY_ID,
});
Continue grant
const grant = await client.grant.continue(
{
accessToken: CONTINUE_ACCESS_TOKEN,
url: CONTINUE_URI,
},
{
interact_ref: interactRef,
},
);
Output
console.log("OUTGOING_PAYMENT_ACCESS_TOKEN =", grant.access_token.value);
console.log(
"OUTGOING_PAYMENT_ACCESS_TOKEN_MANAGE_URL =",
grant.access_token.manage,
);
Run node path/to/directory/index.js
.