【问题标题】:Firebase + auth0 authenticationFirebase + auth0 身份验证
【发布时间】:2015-04-10 22:43:37
【问题描述】:

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

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

Facebook、Google+、Twitter、自行注册。

问题: 在我需要将身份验证模型与 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 使用。

块引用

【问题讨论】:

  • 如果没有更多信息,我不确定如何回答您的问题,但请查看以下内容:firebase.com/blog/2014-06-05-auth0-guest-blog.htmlgithub.com/auth0/mdocs2/blob/gh-pages/client_side/auth.js 它们并不是您要寻找的东西,但它们可能会发送给您直接对。如果您有更多详细信息(或代码 sn-p),我可以尝试更具体地回答。
  • 我向 auth0 支持发送了一个问题以获得澄清。这是他们发回的内容:“一旦您的用户通过 Auth0 进行了身份验证,您就可以使用委托端点将该令牌交换为您可以与 Firebase 一起使用的另一个令牌(使用您的 Firebase 密码签名)。您需要发送原始 id_token和 firebase 作为 api_type。希望这会有所帮助!"
  • 我还是比较糊涂,我的意思是我怎么称呼委托端点?,去看看这些文章Nathan。

标签: ios objective-c authentication firebase auth0


【解决方案1】:

我已经为浏览器中的 Javascript 做到了这一点,而不是 ios/Objective C。但在概念上,你需要做四件事:

设置

  1. 配置您的 Auth0 帐户以允许 Firebase 委派,并提供您的 Firebase 令牌。这部分由 Firebase 标签上的 Auth0's ios/objective C docs for Firebase 介绍。
  2. (可选)创建 Auth0 规则以设置委托 Firebase 令牌的属性。你在上面的 sn-p 中有这个。

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

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

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

身份验证流程

Auth0 has a swift sample 这似乎对您有帮助。你需要做两件事:

  1. 用户身份验证成功后,再次向 Auth0 请求来自 Auth0 的委派 Firebase 访问令牌,请参阅 sample line 65
  2. 通过 Firebase 对象的 authWithCustomToken 方法使用新的委托令牌,请参阅sample line 73

【讨论】:

  • 此答案中的链接似乎已损坏。是否可以更新它们?
  • 恐怕Auth0已经重新组织了他们的样本,我没有找到直接可比的替代品。
猜你喜欢
  • 2016-04-22
  • 1970-01-01
  • 2015-06-29
  • 1970-01-01
  • 2018-12-06
  • 2016-09-25
  • 2018-10-09
  • 1970-01-01
相关资源
最近更新 更多