Linear

获取你的 Linear 凭证

要使用 Linear 登录,你需要一个客户端 ID 和客户端密钥。你可以从 Linear 开发者门户 获取它们。

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

在 Linear 中创建 OAuth 应用时,你需要指定所需的权限范围。默认的权限范围是 read,但如果需要,你也可以请求额外的权限范围,例如 write

配置提供程序

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

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

export const auth = betterAuth({
    socialProviders: {
        linear: { 
            clientId: process.env.LINEAR_CLIENT_ID as string, 
            clientSecret: process.env.LINEAR_CLIENT_SECRET as string, 
        }, 
    },
})

使用 Linear 登录

要使用 Linear 登录,你可以使用客户端提供的 signIn.social 函数。signIn 函数接受一个包含以下属性的对象:

  • provider:要使用的提供者。应设置为 linear
auth-client.ts
import { createAuthClient } from "better-auth/client"
const authClient = createAuthClient()

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

可用权限范围

Linear OAuth 支持以下权限范围:

  • read(默认):读取用户账户的权限
  • write:写入用户账户的权限
  • issues:create:允许创建新的问题及其附件
  • comments:create:允许创建新的问题评论
  • timeSchedule:write:允许创建和修改时间表
  • admin:拥有管理员级别接口的全部权限(请谨慎使用)

在配置提供程序时,你可以指定附加的范围:

auth.ts
export const auth = betterAuth({
    socialProviders: {
        linear: {
            clientId: process.env.LINEAR_CLIENT_ID as string,
            clientSecret: process.env.LINEAR_CLIENT_SECRET as string,
            scope: ["read", "write"] 
        },
    },
})

On this page