Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@commercelayer/js-auth

Package Overview
Dependencies
Maintainers
3
Versions
56
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@commercelayer/js-auth

Commerce Layer Javascript Auth

  • 1.0.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
2.7K
decreased by-7.03%
Maintainers
3
Weekly downloads
 
Created
Source

Commerce Layer JS Auth

A JavaScript Library wrapper that helps you to use the Commerce Layer API for Authentication.

What is Commerce Layer?

Commerce Layer is a headless platform that makes it easy to build enterprise-grade ecommerce into any website, by using the language, CMS, and tools you already master and love.

Installation

Commerce Layer JS Auth is available as an npm package.

// npm
npm install @commercelayer/js-auth

// yarn
yarn add @commercelayer/js-auth

Authorization flows

To get an access token, you need to execute an OAuth 2.0 authorization flow by using a valid application as the client.

Grant typeSales channelIntegrationWebapp
Client credentials
Password
Refresh token
Authorization code

Remember that, for security reasons, access tokens expire after 2 hours. Refresh tokens expire after 2 weeks.

Getting started

import CLayerAuth from '@commercelayer/js-auth'

// or

import { salesChannel, integration, webapp } from '@commercelayer/js-auth'

Use cases

Based on the authorization flow and application you want to use, you can get your access token in a few simple steps. These are the most common use cases:

Sales channel (client credentials)

Sales channel applications use the client credentials grant type to get a "guest" access token.

Steps

  1. Create a sales channel application on Commerce Layer and take note of your API credentials (base endpoint, client ID, and the ID of the market you want to put in scope)

  2. Use this code to get your access token:

    const auth = await salesChannel({
        clientId: 'your-client-id',
        endpoint: 'https://yourdomain.commercelayer.io',
        scopes: 'market:{id}'
      })
    
    console.log('My access token: ', auth.accessToken)
    

Sales channel (password)

Sales channel applications can use the password grant type to exchange a customer credentials for an access token (i.e. to get a "logged" access token).

Steps

  1. Create a sales channel application on Commerce Layer and take note of your API credentials (base endpoint, client ID, and the ID of the market you want to put in scope)

  2. Use this code (changing user name and password with the customer credentials) to get the access token:

    const auth = await salesChannel(
      {
        clientId: 'your-client-id',
        endpoint: 'https://yourdomain.commercelayer.io',
        scopes: 'market:{id}'
      },
      {
        username: 'john@example.com',
        password: 'secret'
      }
    )
    
    console.log('My access token: ', auth.accessToken)
    

Sales channel applications can use the refresh token grant type to refresh a customer access token with a "remember me" option. So in this case, if the token is expired, you can refresh it by using the refresh() method:

const newToken = await auth.refresh()

Integration (client credentials)

Integration applications use the client credentials grant type to get an access token for themselves.

Steps

  1. Create an integration application on Commerce Layer and take note of your API credentials (client ID, client secret, and base endpoint)

  2. Use this code to get the access token:

    const auth = await integration({
      clientId: 'your-client-id',
      clientSecret: 'your-client-secret',
      endpoint: 'https://yourdomain.commercelayer.io'
    })
    
    console.log('My access token: ', auth.accessToken)
    

Webapp (authorization code)

Available only for browser applications

Webapp applications use the authorization code grant type to exchange an authorization code for an access token.

Steps

In this case, first you need to get an authorization code, then you can exchange it with an access token:

  1. Create a webapp application on Commerce Layer and take note of your API credentials (client ID, client secret, callback URL, base endpoint, and the ID of the market you want to put in scope)

  2. Use this code to open a new window and authorize your webapp on Commerce Layer:

    const auth = await webapp({
      clientId: 'your-client-id',
      clientSecret: 'your-client-secret',
      callbackUrl: 'https://yourdomain.com/callback',
      endpoint: 'https://yourdomain.commercelayer.io',
      scopes: 'market:{id}'
    })
    
  3. Once you've authorized the application, you will be redirected to the callback URL. Use this code to get the access token:

    // https://yourdomain.com/callback
    
    const auth = await webapp({
      clientId: 'your-client-id',
      clientSecret: 'your-client-secret',
      callbackUrl: 'your-callback-url',
      endpoint: 'https://yourdomain.commercelayer.io',
      scopes: 'market:{id}',
      location: `${location.href}` // triggers the access token request
    })
    
    console.log('My access token: ', auth.accessToken)
    

License

This repository is published under the MIT license.

Keywords

FAQs

Package last updated on 29 Nov 2019

Did you know?

Socket

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.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc