GitLab
获取你的 GitLab 凭证
要使用 GitLab 登录,你需要一个客户端 ID 和客户端密钥。GitLab OAuth 文档。
请确保在本地开发时将重定向 URL 设置为 http://localhost:3000/api/auth/callback/gitlab。在生产环境中,应将其设置为你的应用的 URL。如果你更改了身份验证路由的基础路径,也应相应地更新重定向 URL。
配置提供程序
要配置提供程序,你需要导入该提供程序并将其传递给身份验证实例的 socialProviders 选项。
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 应用的客户端 IDclientSecret:你的 GitLab 应用的客户端密钥issuer:(可选)你 GitLab 实例的 URL。用于自托管的 GitLab 服务器。- 默认值:
"https://gitlab.com"(GitLab.com) - 示例:
"https://gitlab.company.com"
- 默认值:
当使用自托管的 GitLab 实例时,issuer 选项非常有用。如果你使用的是 GitLab.com,可以省略此选项,因为默认值为 https://gitlab.com。
使用自托管 GitLab 的示例
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 togitlab.
import { createAuthClient } from "better-auth/client"
const authClient = createAuthClient()
const signIn = async () => {
const data = await authClient.signIn.social({
provider: "gitlab"
})
}