@sp-api-sdk/auth
TypeScript icon, indicating that this package has built-in type declarations

2.2.12 • Public • Published

@sp-api-sdk/auth

npm version XO code style

Amazon Selling Partner API authentication package

Bizon

Installing

npm install @sp-api-sdk/auth

Default values from the environment

These constructor options can be passed using environment variables:

Property Name Environement variable
clientId LWA_CLIENT_ID
clientSecret LWA_CLIENT_SECRET
refreshToken LWA_REFRESH_TOKEN

Grantless APIs support

Some APIs require grantless authentication, which is done by passing scopes, instead of a refresh token. The available scopes are exposed in the AuthorizationScope enum from this library.

import { SellingPartnerApiAuth, AuthorizationScope } from "@sp-api-sdk/auth";
import { AuthorizationApiClient } from "@sp-api-sdk/authorization-api-v1";

const auth = new SellingPartnerApiAuth({
  clientId: "",
  clientSecret: "",
  scopes: [AuthorizationScope.NOTIFICATIONS, AuthorizationScope.CLIENT_CREDENTIAL_ROTATION], // Or choose the only ones you need
});

const accessToken = await auth.getAccessToken();

Credentials caching

getAccessToken() caches the access token in memory for its whole duration, it will only request a new token if the current one has expired.

Subclassing

You can subclass SellingPartnerApiAuth to add custom logic, for example, caching the access token in a store.

import { SellingPartnerApiAuth } from "@sp-api-sdk/auth";

import { storeToken, getToken } from "./token-store";

class StoredSellingPartnerApiAuth extends SellingPartnerApiAuth {
  async getAccessToken() {
    let token = await getToken();
    if (token) {
      return token;
    }

    token = await super.getAccessToken();
    await storeToken(token, { ttl: this.accessTokenExpiration });

    return token;
  }
}

License

MIT

Miscellaneous

    ╚⊙ ⊙╝
  ╚═(███)═╝
 ╚═(███)═╝
╚═(███)═╝
 ╚═(███)═╝
  ╚═(███)═╝
   ╚═(███)═╝

Package Sidebar

Install

npm i @sp-api-sdk/auth

Weekly Downloads

1,829

Version

2.2.12

License

MIT

Unpacked Size

16.6 kB

Total Files

21

Last publish

Collaborators

  • tusbar