Linear
获取你的 Linear 凭证
要使用 Linear 登录,你需要一个客户端 ID 和客户端密钥。你可以从 Linear 开发者门户 获取它们。
请确保将重定向 URL 设置为 http://localhost:3000/api/auth/callback/linear,用于本地开发。对于生产环境,你应将其设置为你的应用的 URL。如果你更改了认证路由的基础路径,也应相应更新重定向 URL。
在 Linear 中创建 OAuth 应用时,你需要指定所需的权限范围。默认的权限范围是 read,但如果需要,你也可以请求额外的权限范围,例如 write。
配置提供程序
要配置提供程序,你需要导入该提供程序并将其传递给身份验证实例的 socialProviders 选项。
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。
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:拥有管理员级别接口的全部权限(请谨慎使用)
在配置提供程序时,你可以指定附加的范围:
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"]
},
},
})