Railway
Railway 提供者设置和使用方法。
获取您的 Railway 凭证
要使用 Railway 登录,您需要客户端 ID 和客户端密钥。您可以从 Railway 开发者设置 获取它们。
- 进入您的 Railway 账户的开发者设置
- 点击“创建 OAuth 应用”
- 将应用程序类型设置为“Web 应用程序”
- 将重定向 URL 设置为
http://localhost:3000/api/auth/callback/railway(本地开发),或生产环境中的应用 URL
请务必安全地保存您的客户端 ID 和客户端密钥。如果更改了认证路由的基础路径,请相应更新重定向 URL。
Railway 使用 PKCE(代码交换的密钥)来增强安全性。此功能由 Better Auth 自动处理。
配置提供者
要配置该提供者,您需要导入提供者并将其传递给认证实例的 socialProviders 选项。
import { betterAuth } from "better-auth"
export const auth = betterAuth({
socialProviders: {
railway: {
clientId: process.env.RAILWAY_CLIENT_ID as string,
clientSecret: process.env.RAILWAY_CLIENT_SECRET as string,
},
},
})使用方法
使用 Railway 登录
要使用 Railway 登录,您可以使用客户端提供的 signIn.social 函数。signIn 函数接收一个包含以下属性的对象:
provider:要使用的提供者,应设置为railway
import { createAuthClient } from "better-auth/client"
const authClient = createAuthClient()
const signIn = async () => {
const data = await authClient.signIn.social({
provider: "railway"
})
}选项
有关所有社交提供者支持的完整选项列表,请参见 提供者选项。
可用权限范围
Railway OAuth 支持以下权限范围:
| 权限范围 | 描述 |
|---|---|
openid | 所有请求必需(默认包含) |
email | 访问用户的电子邮件地址(默认包含) |
profile | 访问用户的姓名和头像(默认包含) |
offline_access | 接收刷新令牌以实现长期访问 |
workspace:viewer | 查看用户选择的工作区 |
workspace:member | 成员权限访问用户选择的工作区 |
workspace:admin | 管理员权限访问用户选择的工作区 |
project:viewer | 查看用户选择的项目 |
project:member | 成员权限访问用户选择的项目 |
当请求工作区或项目权限时,用户将在授权同意界面选择具体要共享的工作区或项目。
您可以在配置提供者时指定额外的权限范围:
import { betterAuth } from "better-auth"
export const auth = betterAuth({
socialProviders: {
railway: {
clientId: process.env.RAILWAY_CLIENT_ID as string,
clientSecret: process.env.RAILWAY_CLIENT_SECRET as string,
scope: ["workspace:viewer", "project:viewer"],
},
},
})当请求 offline_access 权限范围时,Railway 要求在授权 URL 中设置 prompt=consent:
railway: {
clientId: process.env.RAILWAY_CLIENT_ID as string,
clientSecret: process.env.RAILWAY_CLIENT_SECRET as string,
scope: ["offline_access"],
prompt: "consent",
}有关 Railway OAuth 实现的更多信息,请参阅 Railway 官方文档。