32 lines
1001 B
JavaScript
32 lines
1001 B
JavaScript
const functions = require("firebase-functions");
|
|
const admin = require("firebase-admin");
|
|
admin.initializeApp(functions.config().firebase);
|
|
|
|
// On sign up.
|
|
exports.processSignUp = functions.auth.user().onCreate((user) => {
|
|
// Check if user meets role criteria:
|
|
// Your custom logic here: to decide what roles and other `x-hasura-*` should the user get
|
|
let customClaims;
|
|
if (user.email && user.email.indexOf("@admin.imex.online") !== -1) {
|
|
customClaims = {
|
|
"https://hasura.io/jwt/claims": {
|
|
"x-hasura-default-role": "admin",
|
|
"x-hasura-allowed-roles": ["user", "admin"],
|
|
"x-hasura-user-id": user.uid,
|
|
},
|
|
};
|
|
} else {
|
|
customClaims = {
|
|
"https://hasura.io/jwt/claims": {
|
|
"x-hasura-default-role": "user",
|
|
"x-hasura-allowed-roles": ["user"],
|
|
"x-hasura-user-id": user.uid,
|
|
},
|
|
};
|
|
}
|
|
|
|
// Set custom user claims on this newly created user.
|
|
return admin.auth().setCustomUserClaims(user.uid, customClaims);
|
|
|
|
});
|