# TikTok (/docs/authentication/tiktok)

TikTok 提供者设置和使用说明。



<Steps>
  <Step>
    ### 获取您的 TikTok 凭证 [#获取您的-tiktok-凭证]

    要与 TikTok 集成，您需要通过在 [TikTok 开发者门户](https://developers.tiktok.com/apps) 创建应用程序来获取 API 凭证。

    请按照以下步骤操作：

    1. 在 TikTok 开发者门户创建账户
    2. 创建一个新的应用程序
    3. 设置沙盒环境用于测试
    4. 配置重定向 URL（必须为 HTTPS）
    5. 记下您的客户端密钥和客户端密钥

    <Callout type="info">
      * TikTok API 不支持 localhost。您需要在重定向 URL 中使用公开域名，并在本地测试时使用 HTTPS。您可以使用 [NGROK](https://ngrok.com/) 或其他类似工具来实现。
      * 对于测试，您需要使用 [沙盒模式](https://developers.tiktok.com/blog/introducing-sandbox)，并在 TikTok 开发者门户中启用它。
      * 默认作用域为 `user.info.profile`。如需其他作用域，请参考 [可用作用域](https://developers.tiktok.com/doc/tiktok-api-scopes/) 文档。
    </Callout>

    确保将重定向 URL 设置为本地开发的有效 HTTPS 域名。对于生产环境，应将其设置为应用程序的 URL。如果更改了认证路由的基本路径，请相应更新重定向 URL。

    <Callout type="info">
      * TikTok API 不提供电子邮件地址。Better Auth 使用用户稳定的 `open_id` 创建一个不可路由的 `{open_id}@tiktok.placeholder.invalid` 地址。
      * 若要在生产环境中使用，您需要向 TikTok 申请批准您计划使用的作用域。
    </Callout>
  </Step>

  <Step>
    ### 配置提供者 [#配置提供者]

    要配置提供者，您需要导入提供者，并将其传递给认证实例的 `socialProviders` 选项。

    ```ts title="auth.ts"
    import { betterAuth } from "better-auth"

    export const auth = betterAuth({
        socialProviders: {
            tiktok: { // [!code highlight]
                clientSecret: process.env.TIKTOK_CLIENT_SECRET as string, // [!code highlight]
                clientKey: process.env.TIKTOK_CLIENT_KEY as string, // [!code highlight]
            }, // [!code highlight]
        },
    })
    ```
  </Step>

  <Step>
    ### 使用 TikTok 登录 [#使用-tiktok-登录]

    要使用 TikTok 登录，您可以使用客户端提供的 `signIn.social` 函数。`signIn` 函数接受一个包含以下属性的对象：

    * `provider`：要使用的提供者。应设置为 `tiktok`。

    ```ts title="auth-client.ts"
    import { createAuthClient } from "better-auth/client"
    const authClient =  createAuthClient()

    const signIn = async () => {
        const data = await authClient.signIn.social({
            provider: "tiktok"
        })
    }
    ```
  </Step>
</Steps>

