# 自定义登录

开发者可以使用自定义登录,在自己的服务器或者云函数内,为用户签发带有自定义身份 ID 的自定义登录凭证 Ticket,随后用户端 SDK 便可以使用 Ticket 登录 CloudBase。

# 适用场景

自定义登录一般用于下面几种场景:

  • 开发者希望将自有的账号体系与云开发 CloudBase 账号进行一对一关联;
  • 开发者希望自行接管鉴权流程。

# 步骤概览

自定义登录需要以下几个步骤:

  1. 获取 CloudBase 自定义登录私钥;
  2. 使用 CloudBase 服务端 SDK,通过私钥签发出 Ticket,并返回至用户端;
  3. 用户端 SDK 使用 Ticket 登录 CloudBase

# 第 1 步:获取自定义登录私钥

登录 CloudBase 控制台,在 环境 -> 登录授权下的自定义登录栏中,点击「私钥下载」或者「私钥复制」:

云开发下载私钥

私钥是一份携带有 JSON 数据的文件,请将下载或复制的私钥文件保存到您的服务器或者云函数中,假设路径为/path/to/your/tcb_custom_login.json

注意

  1. 私钥文件是证明管理员身份的重要凭证,请务必妥善保存,避免泄漏;
  2. 每次生成私钥文件都会使之前生成的私钥文件在 2 小时后失效

# 第 2 步:签发 Ticket

调用 CloudBase 服务端 SDK,在初始化时传入自定义登录私钥,随后便可以签发出 Ticket,并返回至用户端。

    TIP

    开发者也可以编写一个云函数用于生成 Ticket,并为其设置云接入,随后用户端便可以通过 HTTP 请求的形式获取 Ticket,详细的云接入方案请参阅 使用云接入访问云函数

    注意

    customUserId 必须满足以下需求:

    • 4-32 位字符
    • 字符只能是大小写英文字母、数字、以及 _-#@(){}<>[]:.,<>+#~ 中的字符

    # 第 3 步:使用 Ticket 登录 CloudBase

    用户端应用获取到 Ticket 之后,便可以调用客户端 SDK 提供的 auth.signInWithTicket() 登录 CloudBase:

      整体流程示意如下:

      自定义登录

      # 常见问题

      自定义登录一定需要自己假设用于创建 Ticket 的服务器吗?

      自定义登录必须有一个创建 Ticket 的服务,但是开发者并非一定要自己搭建服务器。

      开发者还可以编写一个云函数来创建 Ticket,然后客户端使用云接入 HTTP 请求调用这个云函数获取 Ticket,详细的云接入方案请参阅 使用云接入访问云函数