9

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.

John Smith
  • 113
  • 1
  • 8
  • 1
    The error message says that its a config for the users-permissions plugin that is missing, not aws. https://docs.strapi.io/developer-docs/latest/plugins/users-permissions.html#jwt-configuration – jordanm May 03 '22 at 20:02

2 Answers2

10

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'),
    },
  },
});
MCSI
  • 2,818
  • 26
  • 35
1

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')
      },
    },
  },
});
floflock
  • 586
  • 4
  • 11