@@ -8,55 +8,20 @@ an Authorisation header that has a valid JWT
88
99"use strict" ;
1010const fetch = require ( "node-fetch" ) ;
11- const faunadb = require ( "faunadb" ) ;
12- const generator = require ( 'generate-password' ) ;
13-
14- /* configure faunaDB Client with our secret
15- DB Secret key is held within the netlify online UI
16- */
17- const q = faunadb . query
18- const client = new faunadb . Client ( {
19- secret : process . env . FAUNADB_SERVER_SECRET
20- } )
21-
22- /* create a user in FaunaDB that can connect from the browser */
23- /**
24- *
25- * @param {object } userData
26- * @property {string } userData.id - netlify id nunmber
27- * @property {object } userData.user_metadata - additonal arbitary
28- * @param {string } password
29- */
30- function createDbUser ( userData , password ) {
31- return client . query ( q . Create ( q . Collection ( "users" ) , {
32- credentials : {
33- password : password
34- } ,
35- data : {
36- id : userData . id ,
37- user_metadata : userData . user_metadata
38- }
39- } ) )
40- }
41-
42- function obtainToken ( user , password ) {
43- return client . query (
44- q . Login ( q . Select ( "ref" , user ) , { password } ) )
45- }
11+ const identitySignup = require ( './identity-signup' )
4612
4713/**
4814 * Update the app_metadata for a netlify user to include add the faunaDB token
49- *
5015 * @param {object } appMetaDataObject - object containing any additional arbitary data for the user
5116 * @param {string } usersAdminUrl - url of eg "<SITE.com>/.netlify/identity/admin/users/123-abc-456"
5217 * @param {string } adminAuthHeader - authorisation JWT
5318 */
5419function updateNetlifyUserAppMetaData ( appMetaData , usersAdminUrl , JWT ) {
5520
5621 return fetch ( usersAdminUrl , {
57- method : "PUT" ,
58- headers : { Authorization : `Bearer ${ JWT } ` } ,
59- body : JSON . stringify ( { app_metadata : appMetaData } )
22+ method : "PUT" ,
23+ headers : { Authorization : `Bearer ${ JWT } ` } ,
24+ body : JSON . stringify ( { app_metadata : appMetaData } )
6025 } )
6126 . then ( response => response . json ( ) )
6227 . then ( data => data )
@@ -83,16 +48,12 @@ function handler(event, context, callback) {
8348 id : userID ,
8449 user_metadata : user . user_metadata
8550 }
86- const password = generator . generate ( {
87- length : 10 ,
88- numbers : true
89- } ) ;
90-
51+ const password = identitySignup . generatePassword ( )
9152 console . log ( "admin url check" , usersAdminUrl )
9253 console . log ( "bearer token check" , JWT )
9354
94- createDbUser ( userObject , password )
95- . then ( ( user ) => obtainToken ( user , password ) )
55+ identitySignup . createDbUser ( userObject , password )
56+ . then ( ( user ) => identitySignup . obtainToken ( user , password ) )
9657 . then ( ( key ) => updateNetlifyUserAppMetaData ( { db_token : key . secret } , usersAdminUrl , JWT ) )
9758 . then ( ( resp ) => {
9859 console . log ( "Received response: " , ! ! resp )
@@ -106,9 +67,7 @@ function handler(event, context, callback) {
10667 console . error ( "Unable to create a user account" , error )
10768 callback ( null , {
10869 statusCode : 418 ,
109- body : JSON . stringify ( {
110- error : error
111- } )
70+ body : JSON . stringify ( { error : error } )
11271 } )
11372 } )
11473}
0 commit comments