Facebook OAuth 配置
本指南说明如何为应用配置 Facebook 登录。完成后,用户可使用 Facebook 账号登录。
前置条件
- Facebook 账号
- 可访问 Facebook for Developers
- 已准备好应用的重定向 URI
步骤 1:创建 Facebook 应用
- 打开 Facebook for Developers
- 点击右上角 我的应用
- 点击 创建应用
- 选择应用类型:
- 消费者 - 面向普通用户
- 商业 - 面向企业集成
- 填写应用信息:
- 应用名称:您的应用名称
- 应用联系邮箱:您的邮箱
- 点击 创建应用
步骤 2:设置 Facebook 登录
- 在应用仪表板中找到 为应用添加产品
- 找到 Facebook 登录 并点击 设置
- 选择平台(Web、iOS、Android)
Web 应用
- 输入网站 URL:
https://yourdomain.com - 保存更改
iOS 应用
- 输入套装 ID:
com.yourcompany.myapp - 如需单点登录请启用
- 保存更改
Android 应用
- 输入包名:
com.yourcompany.myapp - 输入默认 Activity 类名
- 添加 Key Hashes(调试版和发布版)
- 保存更改
步骤 3:配置 OAuth 设置
- 在左侧边栏进入 Facebook 登录 > 设置
- 配置以下项:
有效 OAuth 重定向 URI
添加您的重定向 URI:
https://yourdomain.com/auth/facebook/callback
https://yourdomain.com/auth/callback
http://localhost:3000/auth/facebook/callback (开发用)
客户端 OAuth 设置
| 设置 | 推荐值 |
|---|---|
| 客户端 OAuth 登录 | 是 |
| Web OAuth 登录 | 是 |
| 强制 Web OAuth 重新认证 | 否 |
| 嵌入式浏览器 OAuth 登录 | 是 |
| 从设备登录 | 否(除非需要) |
- 点击 保存更改
步骤 4:获取应用凭据
- 在左侧边栏进入 设置 > 基本信息
- 记录:
- App ID - 应用标识符
- App Secret - 点击「显示」查看(请妥善保管!)
警告: 切勿在客户端代码或公开仓库中暴露 App Secret。
步骤 5:配置权限
- 进入 应用审核 > 权限和功能
- 以下权限默认可用:
email- 用户邮箱public_profile- 基本资料
- 其他权限可能需要应用审核
常用权限
| 权限 | 说明 | 是否需审核 |
|---|---|---|
| 用户邮箱 | 否 | |
| public_profile | 姓名、头像 | 否 |
| user_friends | 使用应用的好友 | 是 |
| user_photos | 相册访问 | 是 |
步骤 6:在 OpenDev 中配置
- 登录 OpenDev 平台
- 进入 OAuth 渠道
- 添加或编辑 Facebook OAuth 渠道
- 填写配置:
{
"provider": "facebook",
"appId": "YOUR_APP_ID",
"appSecret": "YOUR_APP_SECRET",
"scopes": ["email", "public_profile"],
"callbackUrl": "https://yourdomain.com/auth/facebook/callback",
"apiVersion": "v18.0"
}
配置字段
| 字段 | 必填 | 说明 |
|---|---|---|
| App ID | 是 | Facebook 应用 ID |
| App Secret | 是 | Facebook 应用密钥 |
| Scopes | 是 | 请求的权限 |
| Callback URL | 是 | 重定向 URI |
| API Version | 否 | Facebook Graph API 版本 |
步骤 7:测试集成
开发模式
在开发模式下,仅应用管理员、开发者和测试者可登录。
- 进入 角色 > 角色
- 在 测试用户 或 测试员 下添加测试账号
测试步骤
- 在应用中触发 Facebook 登录
- 使用测试账号登录
- 验证 OAuth 回调正常
- 检查返回的用户数据
OAuth 响应示例
{
"provider": "facebook",
"providerId": "10158XXXXXXXXX",
"email": "user@example.com",
"name": "John Doe",
"avatar": "https://graph.facebook.com/10158XXXXXXXXX/picture"
}
步骤 8:上线
正式发布前:
- 进入 设置 > 基本信息
- 填写所有必填项:
- 隐私政策 URL
- 服务条款 URL
- 应用图标
- 分类
- 将应用从 开发 切换为 上线 模式
注意: 部分功能需经应用审核后才能上线。
故障排查
错误:Invalid redirect_uri
解决: 确保重定向 URI 与「有效 OAuth 重定向 URI」列表中的条目完全一致。
错误:App Not Setup
解决: 在设置 > 基本信息中完成所有必填项,并确认应用处于上线模式。
错误:User Cannot Access App
解决: 开发模式下,在角色 > 角色中将用户添加为测试员。
登录后白屏
解决: 检查浏览器控制台是否有 JavaScript 错误,确认回调 URL 处理逻辑正常。
安全最佳实践
- 使用 App Secret Proof - 在高级设置中启用以增强安全性
- 验证签名请求 - 始终验证 Facebook 的签名请求
- 使用 HTTPS - 生产环境 OAuth 必须使用 HTTPS
- 实现 state 参数 - 防止 CSRF 攻击
- 短期令牌 - 使用短期令牌并在需要时刷新