Open Signup
Open Signup plugin allows users to register in adminforth by them-selfs without admin. This is useful when you want to allow anyone to sign up and assign some low-level permissions to them.
Installation
To install the plugin:
npm install @adminforth/open-signup --save
Usage
To use the plugin, instantiate to to user resource:
./resources/user.ts
import OpenSignupPlugin from '@adminforth/open-signup';
Like this:
./resources/user.ts
new OpenSignupPlugin({
emailField: 'email',
passwordField: 'password',
passwordHashField: 'password_hash',
defaultFieldValues: {
role: 'user',
},
}),
Please note that in this mode users will be able to sign up without email verification. For enabling email verification, see below.
Email verification
First, you need to migrate the users
table in ./schema.prisma
:
./schema.prisma
model users {
...
email_confirmed Boolean? @default(false)
}
And prisma migrate:
npx --yes prisma migrate dev --name add-email-confirmed-to-users
Next, install the @adminforth/email-adapter-aws-ses
package:
npm i @adminforth/email-adapter-aws-ses --save
Also, update the resource configuration in ./resources/users.ts
:
./resources/users.ts
...
import EmailAdapterAwsSes from '@adminforth/email-adapter-aws-ses';
export default {
dataSource: 'maindb',
table: 'users',
resourceId: 'users',
label: 'Users',
recordLabel: (r) => `👤 ${r.email}`,
columns: [
...
{ name: 'email_confirmed' }
],
...
plugins: [
...
new OpenSignupPlugin({
emailField: "email",
passwordField: "password",
passwordHashField: "password_hash",
defaultFieldValues: {
role: "user",
},
confirmEmails: {
emailConfirmedField: "email_confirmed",
sendFrom: "no-reply@devforth.io",
adapter: new EmailAdapterAwsSes({
region: "eu-central-1",
accessKeyId: process.env.AWS_ACCESS_KEY_ID as string,
secretAccessKey: process.env.AWS_SECRET_ACCESS_KEY as string,
}),
},
}),
...
],
...
}