@@ -70,7 +70,14 @@ export default defineNuxtModule<RuntimeModuleOptions>({
7070 passwordResetTokens : options . tables ?. passwordResetTokens || defaultOptions . tables . passwordResetTokens ,
7171 } ,
7272 auth : {
73- whitelist : [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( options . auth ?. whitelist || [ ] ) ] ,
73+ whitelist : ( ( ) => {
74+ const combinedWhitelist = [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( options . auth ?. whitelist || [ ] ) ]
75+ // Auto-whitelist /confirm-email if /register is whitelisted
76+ if ( combinedWhitelist . includes ( '/register' ) && ! combinedWhitelist . includes ( '/confirm-email' ) ) {
77+ combinedWhitelist . push ( '/confirm-email' )
78+ }
79+ return combinedWhitelist
80+ } ) ( ) ,
7481 tokenExpiration : options . auth ?. tokenExpiration || defaultOptions . auth . tokenExpiration ,
7582 permissions : options . auth ?. permissions || defaultOptions . auth . permissions
7683 } ,
@@ -89,7 +96,14 @@ export default defineNuxtModule<RuntimeModuleOptions>({
8996 preventCommonPasswords : options . passwordValidation ?. preventCommonPasswords ?? defaultOptions . passwordValidation . preventCommonPasswords ,
9097 } ,
9198 auth : {
92- whitelist : [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( options . auth ?. whitelist || [ ] ) ] ,
99+ whitelist : ( ( ) => {
100+ const combinedWhitelist = [ ...( defaultOptions . auth ?. whitelist || [ ] ) , ...( options . auth ?. whitelist || [ ] ) ]
101+ // Auto-whitelist /confirm-email if /register is whitelisted
102+ if ( combinedWhitelist . includes ( '/register' ) && ! combinedWhitelist . includes ( '/confirm-email' ) ) {
103+ combinedWhitelist . push ( '/confirm-email' )
104+ }
105+ return combinedWhitelist
106+ } ) ( ) ,
93107 permissions : options . auth ?. permissions || defaultOptions . auth . permissions
94108 } ,
95109 apiBasePath : options . apiBasePath || defaultOptions . apiBasePath
@@ -159,6 +173,20 @@ export default defineNuxtModule<RuntimeModuleOptions>({
159173 handler : resolver . resolve ( './runtime/server/api/nuxt-users/password/reset.post' )
160174 } )
161175
176+ // Registration
177+ addServerHandler ( {
178+ route : `${ base } /register` ,
179+ method : 'post' ,
180+ handler : resolver . resolve ( './runtime/server/api/nuxt-users/register.post' )
181+ } )
182+
183+ // Email confirmation
184+ addServerHandler ( {
185+ route : `${ base } /confirm-email` ,
186+ method : 'get' ,
187+ handler : resolver . resolve ( './runtime/server/api/nuxt-users/confirm-email.get' )
188+ } )
189+
162190 // User management
163191 addServerHandler ( {
164192 route : `${ base } ` ,
@@ -272,6 +300,11 @@ export default defineNuxtModule<RuntimeModuleOptions>({
272300 filePath : resolver . resolve ( './runtime/components/NUsersUserForm.vue' )
273301 } )
274302
303+ addComponent ( {
304+ name : 'NUsersRegisterForm' ,
305+ filePath : resolver . resolve ( './runtime/components/NUsersRegisterForm.vue' )
306+ } )
307+
275308 nuxt . options . css = nuxt . options . css || [ ]
276309 nuxt . options . css . push ( resolver . resolve ( './runtime/assets/nuxt-users.css' ) )
277310 } ,
0 commit comments