0.4.0 • Published 10 months ago
druxt-auth v0.4.0
DruxtAuth
Druxt Authentication with Drupal Simple OAuth2 and nuxt/auth.
Links
- DruxtJS: https://druxtjs.org
- Community Discord server: https://discord.druxtjs.org
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
- Download, install and setup the Simple OAuth module.
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.
- See the nuxt/auth documentation form more details: https://auth.nuxtjs.org/api/auth
Options
Option | Type | Required | Default | Description |
---|---|---|---|---|
clientId | string | Yes | undefined | The Drupal Consumer UUID |
clientSecret | string | No | undefined | The Drupal Consumer API secret. Required for Password grant. |
scope | array | No | undefined | The OAuth Scopes to be used for the Drupal Consumer. |