@mathrunet/masamune_cloudflare_auth
v3.1.4
Published
Masamune framework package plugin for Firebase Authentication support.
Maintainers
Readme
[GitHub] | [YouTube] | [Packages] | [X] | [LinkedIn] | [mathru.net]
Masamune framework package plugin for Firebase Authentication support.
Also, masamune_functions_cloudflare can be used to execute server-side functions from methods defined on the client side, allowing for safe implementation.
Installation
Install the following packages
npm install @mathrunet/masamune_cloudflare_authImplementation
Katana CLI
Enable the delete-user Worker in katana.yaml. Firebase Authentication and
Firebase token verification for Workers must also be enabled.
cloudflare:
workers:
enable: true
enable_firebase_auth: true
authentication:
delete_user:
enable: true
firebase:
project_id: your-firebase-project-id
authentication:
enable: trueStore the Firebase Admin SDK service account JSON in
katana_secrets.yaml (recommended):
cloudflare:
authentication:
delete_user:
service_account: |-
{"type":"service_account", ...}You can alternatively set the same service_account field in katana.yaml.
When neither field is set, Katana searches for a service account JSON directly
under cloudflare/, then under android/. Running katana apply adds
@mathrunet/masamune_cloudflare_auth, registers Functions.deleteUser(), and
stores the JSON in the GOOGLE_SERVICE_ACCOUNT Wrangler secret. The service
account must already have the firebaseauth.users.delete IAM permission;
Katana does not modify IAM roles.
Manual setup
Store a Firebase service account JSON as a Cloudflare Workers secret. The service account must have the firebaseauth.users.delete IAM permission (for example, the Firebase Authentication Admin role).
npx wrangler secret put GOOGLE_SERVICE_ACCOUNTImport the package and add Functions.deleteUser() to the Workers deployment.
import * as m from "@mathrunet/masamune_cloudflare_auth";
// Define [m.Functions.xxxx] for the functions to be added to Workers.
export default m.deploy([
m.Functions.deleteUser(),
]);The endpoint requires Firebase Authentication through the Workers authentication adapter. It only deletes the authenticated user's own account: the userId in the request must match the authenticated UID.
You can also specify the service account and project ID in code. Workers secrets are recommended for production.
m.Functions.deleteUser({
serviceAccount: JSON.stringify(serviceAccount),
projectId: "your-firebase-project-id",
});GitHub Sponsors
Sponsors are always welcome. Thank you for your support!
