John Smith
John Smith

Reputation: 153

Missing jwtSecret. Please, set configuration variable "jwtSecret" for the users-permissions plugin in config/plugins.js

I am following this tutorial on Strapi's website: https://docs.strapi.io/developer-docs/latest/setup-deployment-guides/deployment/hosting-guides/amazon-aws.html to deploy to AWS. It doesn't mention a jwtSecret throughout the entire tutorial but I am getting the error mentioned in the title and I am not sure what to do.

My plugins.js file is the following:

module.exports = ({ env }) => ({
upload: {
    config: {
        provider: 'aws-s3',
        providerOptions: {
            accessKeyId: env('AWS_ACCESS_KEY_ID'),
            secretAccessKey: env('AWS_ACCESS_SECRET'),
            region: env('AWS_REGION'),
            params: {
                Bucket: env('AWS_BUCKET_NAME'),
            },
        },
    },
}});

All the variables are declared in my environment file but it doesn't mention a jwtSecret. I am sorry if this is a stupid question but I greatly appreciate the help.

Upvotes: 12

Views: 5230

Answers (3)

Krzysztof Madej
Krzysztof Madej

Reputation: 40839

Here is a correct typescirp setup and here is a link to documentation.

// path: ./config/plugins.ts

const crypto = require('crypto');

export default ({ env }) => ({
  // ...
  'users-permissions': {
    config: {
      jwtSecret: env('STRAPI_JWT_SECRET') || crypto.randomBytes(16).toString('base64')
      jwt: {
        expiresIn: '7d',
      },
    },
  },
});

Upvotes: 0

floflock
floflock

Reputation: 635

If you consider using typescript, take this snippet:

// path: ./config/plugins.ts

const crypto = require('crypto');

export default ({ env }) => ({
  // ...
  'users-permissions': {
    config: {
      jwt: {
        jwtSecret: env('STRAPI_JWT_SECRET') || crypto.randomBytes(16).toString('base64')
      },
    },
  },
});

Upvotes: 2

MCSI
MCSI

Reputation: 2904

Just try adding a new file in '/config' named plugins.js with this code:

const crypto = require('crypto');

module.exports = ({ env }) => ({
  'users-permissions': {
    config: {
      jwtSecret: env('JWT_SECRET') || crypto.randomBytes(16).toString('base64'),
    },
  },
});

Upvotes: 13

Related Questions