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

@opensaas/keystone-auth0-profile

Package Overview
Dependencies
Maintainers
2
Versions
14
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@opensaas/keystone-auth0-profile

This package adds a profile page to Keystone-6 for Auth0. This utalises the `@opensaas/keystone-nextjs-auth` package but add a page, configured via `profilePageName` where the current logged in users profile is displayed.

  • 0.7.0
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
5
decreased by-72.22%
Maintainers
2
Weekly downloads
 
Created
Source

Keystone next auth

This package adds a profile page to Keystone-6 for Auth0. This utalises the @opensaas/keystone-nextjs-auth package but add a page, configured via profilePageName where the current logged in users profile is displayed.

Contents

  • About
  • Adding to your project
  • Configuration
  • Contributing

About

This uses NextAuth.js (https://next-auth.js.org/) project to add social auth and a profile page to Keystone-6 (https://keystonejs.com/). TODO: The roadmap for this package is to then sync information back to auth0 and include account linking via the management API (https://auth0.com/docs/users/user-account-linking).

Adding to your project

Add package by yarn add @opensaas/keystone-auth0-profile then add the following to your keystone.ts:

Add import...

import {
  createAuth,
  nextAuthProviders as Providers,
} from '@opensaas/keystone-auth0-profile';

Add Providers

export const providers = [
  Providers.Auth0({
    clientId: process.env.AUTH0_CLIENT_ID || 'Auth0ClientID',
    clientSecret: process.env.AUTH0_CLIENT_SECRET || 'Auth0ClientSecret',
    domain: process.env.AUTH0_DOMAIN || 'opensaas.au.auth0.com',
  }),
];

for Provider configuration see https://next-auth.js.org/configuration/providers.

Add your Profile and Auth configuration

const profile = createProfile({
  listKey: 'User',
  identityField: 'subjectId',
  sessionData: `id name email`,
  autoCreate: true,
  userMap: { subjectId: 'id', name: 'name' },
  accountMap: {},
  profileMap: { email: 'email' },
  profilePageName: 'me',
});

Wrap your keystone config in profile.withProfile

export default profile.withProfile(
  config({
    server: {},
    db: {},
    ui: {},
    lists,
    ...
  });

Configuration

Provider configuration see https://next-auth.js.org/configuration/providers. For Keystone-6 Configuration see https://keystonejs.com/ for example see the example backend

  • listKey - the list for authentication (generally 'User')
  • identityField - The field that stores the identity/subjectId in keystone (generally 'subjectId')
  • sessionData - Data to be stored in the session ( something like 'id name email'),
  • autoCreate - boolean to autocreate a user when they log in
  • userMap: key:value pairs that define what is copied from the User object returned from NextAuth in the SignIn callback (https://next-auth.js.org/configuration/callbacks#sign-in-callback) Left side is Keystone side, right is what comes from NextAuth eg: { subjectId: 'id', name: 'name' }
  • accountMap - As Above but for the Account object
  • profileMap - As Above but for the Profile object

Contributing

If you want to run this package locally After cloning run yarn install and either:

  • yarn dev to run both the frontend and backend or
  • yarn dev:backend for just the backend

The Demo App is configured in next.config.js to proxy /api/auth to the the host setup using the environment varible BACKEND_BASE_URL in development set export BACKEND_BASE_URL=http://localhost:3000 you will also need to set your NEXTAUTH_URL environment varible see https://next-auth.js.org/configuration/options for more information.

FAQs

Package last updated on 08 May 2022

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