8

我正在开发一个objective-c iOS应用程序。我想使用 auth0 进行身份验证(https://auth0.com/)并且我想使用 Firebase 作为数据库后端。

我已经阅读了所有 auth0 文档,并且我的身份验证适用于:

脸书、谷歌+、推特、自我注册。

问题:当我需要将身份验证模型与 Firebase 集成时,文档有点脱落,它给了我这一页,我现在不确定要做什么。以前有没有人做过这种整合,你能带领我走这条路吗?我在这方面有点新意。

Blockquote配置令牌内容

与在 dahsboard 中注册的任何其他 API 一样,Auth0 将通过委托端点发出 Firebase 令牌。这允许您将令牌换成另一个令牌。

Firebase 令牌的内容按约定生成,复制委托调用中使用的输入令牌中的 firebase_data 属性下包含的所有属性。

您可以使用规则非常轻松地生成这些:

user.firebase_data = {
  user_id: new Buffer(user.email).toString('base64'),
  company: !user.isSocial ? context.connection.replace(/\./g, '-') : null,
  foo: 'bar'
};

在上面的示例中,调用委托 endopint 后将生成两个属性 user_id 和 company,并且这两个属性都将可供 Firebase 使用。

块引用

4

1 回答 1

3

我在浏览器中为 Javascript 完成了此操作,而不是 ios/Objective C。但在概念上,您需要做四件事:

设置

  1. 配置您的 Auth0 帐户以允许 Firebase 委派,并提供您的 Firebase 令牌。这部分由Auth0 的 Firebase 的 ios/objective C 文档介绍,位于 Firebase 选项卡上。
  2. (可选)创建 Auth0 规则以设置委托 Firebase 令牌的属性。您在上面的代码段中有这个。

用于设置 Firebase 令牌属性的 Auth0 规则:

user.firebase_data = {
  user_id: new Buffer(user.email).toString('base64'),
  company: !user.isSocial ? context.connection.replace(/\./g, '-') : null,
  foo: 'bar'
};

您在此处设置的属性将在 Firebase 安全规则中可用。

身份验证流程

Auth0 有一个 swift 示例,似乎可能对您有所帮助。你需要做两件事:

  1. 用户成功通过身份验证后,对来自 Auth0 的委托 Firebase 访问令牌发出第二次 Auth0 请求,请参见示例第 65 行
  2. 通过其 authWithCustomToken 方法将新的委托令牌与 Firebase 对象一起使用,请参见示例第 73 行
于 2015-02-10T21:41:13.080 回答