0.4.0 • Published 10 months ago

druxt-auth v0.4.0

Weekly downloads
-
License
-
Repository
-
Last release
10 months ago

DruxtAuth

npm CI Known Vulnerabilities codecov

Druxt Authentication with Drupal Simple OAuth2 and nuxt/auth.

Links

Install

$ npm install druxt-auth

Nuxt.js

Add module to nuxt.config.js

module.exports = {
  buildModules: [
    'druxt',
    ['druxt-auth', {
      clientId: '[DRUPAL_CONSUMER_UUID]',
      clientSecret: '[DRUPAL_CONSUMER_SECRET]',
      scope: ['default'],
    }]
  ],
  druxt: {
    baseUrl: 'https://demo-api.druxtjs.org'
  },
}

Note: Replace [DRUPAL_CONSUMER_UUID] and [DRUPAL_CONSUMER_SECRET] with the details from the consumer created in the following step.

Drupal

  1. Download, install and setup the Simple OAuth module.
  2. Create a Consumer depending on your desired authorization strategy:

    • Authorization Code grant:

      • New Secret: leave this empty
      • Is Confidential: unchecked
      • Use PKCE?: checked
      • Redirect URI: [FRONTEND_URL]/callback (e.g., http://localhost:3000/callback)
    • Password grant:

      • New Secret: provide a secure secret
      • Is Confidential: checked
      • Redirect URI: [FRONTEND_URL]/callback (e.g., http://localhost:3000/callback)

Usage

The DruxtAuth module installs and configures the nuxt/auth module for your Druxt site.

It adds two auth strategies that can be used via the $auth plugin:

  • drupal-authorization_code

    this.$nuxt.$auth.loginWith('drupal-authorization_code')
  • drupal-password

    this.$nuxt.$auth.loginWith('drupal-password', {
      data: {
        username: '',
        password: ''
      }
    })

    Note: Nuxt must be running in SSR mode for password grant, and client secret must be set.

Options

OptionTypeRequiredDefaultDescription
clientIdstringYesundefinedThe Drupal Consumer UUID
clientSecretstringNoundefinedThe Drupal Consumer API secret. Required for Password grant.
scopearrayNoundefinedThe OAuth Scopes to be used for the Drupal Consumer.