获取 Facebook 凭证
要使用 Facebook 登录,你需要一个客户端 ID 和客户端密钥。你可以从 Facebook 开发者门户 获取它们。 选择你的应用,导航到 应用设置 > 基本,找到以下内容:
- 应用 ID:这是你的
clientId
- 应用密钥:这是你的
clientSecret
避免在客户端代码(例如前端应用)中暴露 clientSecret
,因为这是敏感信息。
对于本地开发,请确保将重定向 URL 设置为 http://localhost:3000/api/auth/callback/facebook
。对于生产环境,你应该将其设置为你的应用程序的 URL。如果你更改了认证路由的基础路径,你应该相应地更新重定向 URL。
配置提供商
要配置提供商,你需要导入提供商并将其传递给 auth 实例的 socialProviders
选项。
BetterAuth 也支持 Facebook 企业登录,你只需要在 Facebook 企业登录 > 配置 中提供 configId
,同时提供 clientId
和 clientSecret
。请注意,应用必须是企业应用,而且由于 BetterAuth 期望有邮箱地址和账户 ID,配置必须是"用户访问令牌"类型。"系统用户访问令牌"不受支持。
使用 Facebook 登录
要使用 Facebook 登录,你可以使用客户端提供的 signIn.social
函数。signIn
函数接受一个包含以下属性的对象:
provider
:要使用的提供商。应该设置为facebook
。
额外配置
作用域
默认情况下,Facebook 提供基本的用户信息。如果你需要额外的权限,你可以在 auth 配置中指定作用域:
额外选项:
scopes
:访问基本账户信息(覆盖)。- 默认值:
"email", "public_profile"
- 默认值:
fields
:扩展从 Facebook 用户资料中获取的字段列表(赋值)。- 默认值:
"id", "name", "email", "picture"
- 默认值:
使用 ID 或访问令牌通过 Facebook 登录
要使用 ID Token 通过 Facebook 登录,你可以使用 signIn.social
函数来传递 ID Token。
当你从客户端获取了 Facebook 的 ID Token 并想在服务器上使用它来登录时,这很有用。
如果提供了 id token,将不会发生重定向,用户将直接登录。
对于有限登录,你需要传递 idToken.token
,对于仅 accessToken
,由于 (#1183)[https://github.com/better-auth/better-auth/issues/1183],你需要同时传递 idToken.accessToken
和 idToken.token
。
有关可用权限的完整列表,请参考权限参考。