繁体   English   中英

将用户从 Firebase Auth 复制/迁移到 Google Identity Platform

[英]Copy / migrate users from Firebase Auth to Google Identity Platform

我一直在使用 Firebase auth 来处理我的应用程序 (react/express js) 中的登录/注册,该应用程序现在包含 +2000 个用户。

我们将迁移以在 Identity Platform 中使用一个新项目(以从 SAML 等中受益),该项目使用与 Firebase 相同的 SDK。 所以现在我们有 2 个独立的项目,有没有办法复制该 Identity Platform 新项目中的所有用户? 或者我可以组合它们并同时使用它们吗?

谢谢

来自文档: https : //cloud.google.com/identity-platform/docs/migrate-users-between-projects-tenants

 var admin = require('firebase-admin'); var sourceApp = admin.initializeApp({ credential: admin.credential.cert('source-project-service-account.json'), }, 'source-app'); var targetApp = admin.initializeApp({ credential: admin.credential.cert('target-project-service-account.json'), }, 'target-app'); var authFrom = sourceApp.auth(); var authTo = targetApp.auth(); function migrateUsers(userImportOptions, nextPageToken) { var pageToken; authFrom.listUsers(1000, nextPageToken) .then(function(listUsersResult) { var users = []; listUsersResult.users.forEach(function(user) { var modifiedUser = user.toJSON(); // Convert to bytes. if (user.passwordHash) { modifiedUser.passwordHash = Buffer.from(user.passwordHash, 'base64'); modifiedUser.passwordSalt = Buffer.from(user.passwordSalt, 'base64'); } // Delete tenant ID if available. This will be set automatically. delete modifiedUser.tenantId; users.push(modifiedUser); }); // Save next page token. pageToken = listUsersResult.pageToken; // Upload current chunk. return authTo.importUsers(users, userImportOptions); }) .then(function(results) { results.errors.forEach(function(indexedError) { console.log('Error importing user ' + indexedError.index); }); // Continue if there is another page. if (pageToken) { migrateUsers(userImportOptions, pageToken); } }) .catch(function(error) { console.log('Error importing users:', error); }); } var userImportOptions = { hash: { algorithm: 'SCRYPT', // The following parameters can be obtained from the "Users" page in the // Cloud Console. The key must be a byte buffer. key: Buffer.from('base64-secret', 'base64'), saltSeparator: Buffer.from('base64SaltSeparator', 'base64'), rounds: 8, memoryCost: 14 } }; migrateUsers(userImportOptions);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM