@magic-sdk/sso
TypeScript icon, indicating that this package has built-in type declarations

0.2.2 • Public • Published

Magic SSO Admin Javascript SDK

Magic SSO Admin SDK provides an easy interface for integrating parties to implement SAML/SSO authentication offered by the Magic platform to select vendors.

Installation

This is an experimental SSO implementation using magic intended only for select partners.

npm install --save @magic-sdk/sso

or

yarn add @magic-sdk/sso

Usage

Generating a SAML Project and configuring a provider

const MagicSSO = require('@magic-sdk/sso');

// Create a Magic Admin SSO instance
const magicSSO = new MagicSSO(‘YOUR_DEVELOPER_SECRET_KEY’);

// Login Users
const SAMLConnectionInfo = await magicSSO.addSamlConnection();

await magicSSO.setProvider({
  project_id, /* from addSamlConnection */
  entity_id, /* from IDP */
  redirect_url,
  issuer, /* IDP Name ie. auth0 */
  sso_url, /* from IDP */
  signing_certificate, /* from IDP */
  metadata_url,
  options,
 });

Logging in a SAML user

import express from 'express';
const MagicSSO = require('@magic-sdk/sso');

const app = express();

// Create a Magic Admin SSO instance
const magicSSO = new MagicSSO(‘YOUR_DEVELOPER_SECRET_KEY’);

// Logging Users In

// Authentication endpoint
app.get('/auth', async (req: any, res: any) => {
  try {
    const { projectID } = req.query;
    const authorizationURL = await magicSSO.getAuthorizationUrl(projectID);
    res.redirect(authorizationURL);
  } catch (err) {
    console.error(err);
  }
});

// Callback endpoint
app.get('/callback', async (req: any, res: any) => {
  try {
    const { code } = req.query;
    const userInfo = await magicSSO.getProfile(code);
    // ... logged in
    res.redirect('/');
  } catch (err) {
    console.error(err);
  }
});

Refer to src/node-e2e/app.ts for reference implementation

Readme

Keywords

none

Package Sidebar

Install

npm i @magic-sdk/sso

Weekly Downloads

1

Version

0.2.2

License

MIT

Unpacked Size

57.6 kB

Total Files

57

Last publish

Collaborators

  • romin-halltari
  • darrentmagic
  • magictristan
  • musicbender
  • chris-magic
  • jay.hwang
  • benmagic
  • hcote
  • josh_scanlan
  • sgdheeban
  • mikeysight
  • damianjachyra
  • jasonatmagic
  • magiclabs_fe
  • bcleary06
  • seanli
  • ethella
  • jmjin
  • dizigen