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

3.2.18 • Public • Published

Liveart Stytch authentication

Liveart authentication package for Stytch implementation.

Installation

Use the npm package manager to install the package into the project.

npm install @liveart/auth

Initialization

Mobile

Run init function to initialize the the workplace (reducer, token storage etc).

import { init } from '@liveart/auth';
import * as Keychain from 'react-native-keychain';
import { store } from './store';

...

init({
  dispatch: store.dispatch,
  storage: Keychain,
  userServiceAddress: 'https://user-dev.liveart.ai',
})

WEB

Run init function to initialize the the workplace (reducer, token storage etc).

import { init } from '@liveart/auth';
import { store } from './store';

...

init({
  dispatch: store.dispatch,
  storage: localStorage,
  userServiceAddress: 'https://user-dev.liveart.ai',
})

Attach reducer and configure saga middleware

Reducer

Attach reducer to your store

import { stytchReducer } from '@liveart/auth';
import { combineReducers } from '@reduxjs/toolkit';

...

const rootReducer = combineReducers({
  ...
  stytch: stytchReducer,
  ...
});

Saga middleware

Attach saga to the saga middleware

import { stytchSaga, stytchSignOut } from '@liveart/auth';
import createSagaMiddleware from 'redux-saga';

...

const sagaMiddleware = createSagaMiddleware()
sagaMiddleware.run(function* () {
  yield all([
    ...
    stytchSaga(),
    ...
  ]);
});

Configure Store

Configure Redux store

import { configureStore } from '@reduxjs/toolkit';

...

const store = configureStore({
  ...
  middleware: (getDefaultMiddleware) => {
    return getDefaultMiddleware({
      serializableCheck: {
        ignoredActions: [getSoldArtworksByArtistId.toString()],
      },
    }).concat(sagaMiddleware);
  },
  ...
});

Usage/Examples

Current step

import { StytchStep, stytchStepSelector } from '@liveart/auth';

const stytchStep = useSelector(stytchStepSelector);

Email sign Up

import {
  StytchStep,
  stytchStepSelector,
  stytchEmailSignUp,
} from '@liveart/auth';

dispatch(
  stytchEmailSignUp({
    email: '<EMAIL@TEST.COM>',
    name: {
      firstName: '<FIRST_NAME>',
      lastName: '<LAST_NAME>',
    },
    enableNewsletter: true,
    termsAccepted: true,
  }),
);

Email exchange code

Exchange the core (which is received via email) for the accessToken

import { stytchStepSelector } from '@liveart/auth';

dispatch(
  stytchEmailExchangeCode({
    code: '<CODE>',
    enableNewsletter: true,
    termsAccepted: true,
  }),
);

Apollo client

Create apollo client with the following configs

import { createApolloAuthenticationLink } from '@liveart/auth';

const client = new ApolloClient({
  uri: '<APOLLO URI>',
  link: createApolloAuthenticationLink(uri),
});

Readme

Keywords

none

Package Sidebar

Install

npm i @liveart/auth

Weekly Downloads

5

Version

3.2.18

License

ISC

Unpacked Size

1.81 MB

Total Files

266

Last publish

Collaborators

  • dmironchenko
  • rrrlero
  • 0mbre
  • danbeynon