Authing 文档文档
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
快速开始
概念
使用指南
开发集成 arrow
  • V2 文档
  • V3 文档
元数据
应用集成
身份自动化
加入 APN
开发集成
多租户(内测版)
控制台文档
多租户控制台
租户控制台
Saas 应用 Demo
旧版
使用指南
  • 快速开始

  • 对用户进行认证

  • 对用户进行权限管理

  • 用户自助服务

  • 授权

  • 自适应 MFA

  • 管理用户账号

  • 管理用户目录

  • 同步中心

  • 应用

  • 成为联邦认证身份源

  • 连接外部身份源(IdP)

  • 微信生态全场景能力

  • 迁移用户到 Authing

    • 使用 SDK 导入用户
    • 自定义密码加密方法
    • 从企业微信、钉钉等第三方身份源导入用户
  • 管理组织机构

  • 安全设置

  • 品牌化

  • 自动化

  • 审计日志

  • 设置

  • Authing 令牌
  • 私有化部署方案

  • 常见问题 FAQ

  1. 使用指南
  2. /
  3. 迁移用户到 Authing
  4. /
  5. 使用 SDK 导入用户

¶ 使用 SDK 导入用户

更新时间: 2025-02-18 09:00:47
编辑

Authing 同时支持了 Java、JavaScript/Node.js、Python、PHP、C#、Go、Ruby 等多种语言的 SDK:

  • Java/Kotlin
  • JavaScript/Node.js
  • Python
  • PHP
  • C#
  • Go
  • Ruby

本文以 Node.js 为例,介绍如何编写脚本导入用户,你可以选择自己熟悉的语言。

¶ 第一步:使用自定义密码函数(可选)

如果你的用户数据表中密码字段是明文,可以跳过此步骤;如果是密文,需要进入 基础配置 -> 密码管理 -> 自定义密码加密方法 开启选项并编写用于加密和验证密码的函数。详情请见 自定义密码加密方法。

¶ 第二步:导出你的用户数据

请将你的用户数据导出为 JSON 格式,内容为一个数组,每个元素是一个对象,其中一个元素对应一条用户的信息,保存为例如 users.json:

[
  {
    "uid": "AUTHING_USER_1",
    "nickname": "zhang",
    "account_id": "zhang",
    "mail": "test1@123.com",
    "password": "$2b$12$nCa3WDbsc3tvM57ifzjwrOAGGuNK7EPV0R17WKcW6f13NZvX97yLe",
    "phone": "13100000001",
    "emailVerified": true,
    "loginsCount": 4
  },
  {
    "uid": "AUTHING_USER_2",
    "nickname": "wang",
    "account_id": "wang",
    "mail": "test2@123.com",
    "password": "$2b$12$HGloOlfz1HzD0v/r5m1r7OCMcx6X85eC5.At3Ckxe.Jn/u/Za/yy2",
    "phone": "13100000002",
    "emailVerified": false,
    "loginsCount": 12
  },
  {
    "uid": "AUTHING_USER_3",
    "nickname": "zhao",
    "account_id": "zhao",
    "mail": "test3@123.com",
    "password": "$2b$12$ia1oUZZFbEUpLvuqUsKideQq9lVkf2kq9vFaTvp7dlfeCx8UlTmDu",
    "phone": "13100000003",
    "emailVerified": true,
    "loginsCount": 0
  }
]

¶ 第三步:确认用户字段映射关系

在正式开始导入之前,你需要先确认你的用户结构与 Authing 用户字段之间的映射关系,你可以在这里获取 Authing 用户所有字段及其释义。

¶ 第四步:导入用户数据到 Authing

如果你没有 NodeJS 环境,需要先安装 NodeJS (opens new window)。

创建一个 index.js 文件。

将以下 js 脚本粘贴到 index.js:

const fs = require('fs')
const path = require('path')

const { ManagementClient } = require('authing-js-sdk')
const userPoolId = 'xxxxxxxxxxxxxxxxxxx'
const secret = 'xxxxxxxxxxxxxxxxxxx'

// 如果文件较大建议分批次读入
// 请将用户信息与本文件保存在同一个目录,文件内容为用户数据的数组 JSON,一个元素为一个用户的信息对象,此处读取上文中的 users.json
let users = fs.readFileSync(path.resolve('users.json'), { encoding: 'utf8' })
users = JSON.parse(users)
async function main() {
  const managementClient = new ManagementClient({
    userPoolId,
    secret,
  })

  for (let i = 0; i < users.length; i++) {
    let yourUser = users[i]
    try {
      // 在此完成字段对齐
      await managementClient.users.create(
        {
          nickname: yourUser.nickname,
          password: yourUser.password,
          email: yourUser.mail,
          emailVerified: yourUser.emailVerified,
          phone: yourUser.phone,
          loginsCount: yourUser.loginsCount,
          // 存储原始数据,以备使用
          oauth: JSON.stringify(yourUser),
        },
        {
          /**
           * 开启这个开关,password 字段会直接写入 Authing 数据库,Authing 不会再次加密此字段
           * 如果你的密码不是明文存储,你应该保持开启,并编写密码函数计算
           */
          keepPassword: true,
        }
      )
    } catch (err) {
      console.log(err)
      // 将导入失败的用户写入文件
      fs.writeFileSync(
        path.resolve('users_failed.json'),
        JSON.stringify(yourUser) + '\n',
        {
          flag: 'a',
        }
      )
    }
  }
}

main()

复制完成后请对字段进行对齐,再执行

$ npm install authing-js-sdk
$ node index.js

代码可在 GitHub 查看:users-migration (opens new window)

¶ 获取帮助

遇到问题?联系我们 (opens new window),Feel free to talk.

上一篇: 迁移用户到 Authing 下一篇: 自定义密码加密方法
  • 第一步:使用自定义密码函数(可选)
  • 第二步:导出你的用户数据
  • 第三步:确认用户字段映射关系
  • 第四步:导入用户数据到 Authing
  • 获取帮助

用户身份管理

集成第三方登录
手机号闪验 (opens new window)
通用登录表单组件
自定义认证流程

企业内部管理

单点登录
多因素认证
权限管理

开发者

开发文档
框架集成
博客 (opens new window)
GitHub (opens new window)
社区用户中心 (opens new window)

公司

400 888 2106
sales@authing.cn
北京市朝阳区北辰世纪中心 B 座 16 层(总)
成都市高新区天府五街 200 号 1 号楼 B 区 4 楼 406 室(分)

京ICP备19051205号

beian京公网安备 11010802035968号

© 北京蒸汽记忆科技有限公司