GitLab

获取你的 GitLab 凭证

要使用 GitLab 登录,你需要一个客户端 ID 和客户端密钥。GitLab OAuth 文档

请确保在本地开发时将重定向 URL 设置为 http://localhost:3000/api/auth/callback/gitlab。在生产环境中,应将其设置为你的应用的 URL。如果你更改了身份验证路由的基础路径,也应相应地更新重定向 URL。

配置提供程序

要配置提供程序,你需要导入该提供程序并将其传递给身份验证实例的 socialProviders 选项。

auth.ts
import { betterAuth } from "better-auth"

export const auth = betterAuth({
    socialProviders: {
        gitlab: { 
            clientId: process.env.GITLAB_CLIENT_ID as string, 
            clientSecret: process.env.GITLAB_CLIENT_SECRET as string, 
            issuer: process.env.GITLAB_ISSUER as string, 
        }, 
    },
})

配置选项

  • clientId:你的 GitLab 应用的客户端 ID
  • clientSecret:你的 GitLab 应用的客户端密钥
  • issuer:(可选)你 GitLab 实例的 URL。用于自托管的 GitLab 服务器。
    • 默认值:"https://gitlab.com"(GitLab.com)
    • 示例:"https://gitlab.company.com"

当使用自托管的 GitLab 实例时,issuer 选项非常有用。如果你使用的是 GitLab.com,可以省略此选项,因为默认值为 https://gitlab.com

使用自托管 GitLab 的示例

auth.ts
export const auth = betterAuth({
    socialProviders: {
        gitlab: {
            clientId: process.env.GITLAB_CLIENT_ID as string,
            clientSecret: process.env.GITLAB_CLIENT_SECRET as string,
            issuer: "https://gitlab.company.com", // Your self-hosted GitLab URL
        },
    },
})

Sign In with GitLab

To sign in with GitLab, you can use the signIn.social function provided by the client. The signIn function takes an object with the following properties:

  • provider: The provider to use. It should be set to gitlab.
auth-client.ts
import { createAuthClient } from "better-auth/client"
const authClient =  createAuthClient()

const signIn = async () => {
    const data = await authClient.signIn.social({
        provider: "gitlab"
    })
}

On this page