【问题标题】:How to use firebase authentication in couchbase sync gateway如何在 couchbase 同步网关中使用 firebase 身份验证
【发布时间】:2017-05-23 06:20:58
【问题描述】:

我正在开发一个 Android 应用。我使用了非常安全且易于实现的 firebase(email, password) 身份验证机制。由于我希望将数据存储在我们的服务器中,因此我没有使用 firebase 存储。 Couchbase 同步网关支持任何开放 ID 身份验证。但我发现很难将两者结合起来。我已经搜索了一个多星期。任何已经使用过它的人。你能帮我配置一下吗?

【问题讨论】:

  • 提醒我领导 Couchbase 移动技术的同事。他们会做出回应。
  • 你能说得更具体点吗?你读过这个吗? blog.couchbase.com/2016/august/…
  • 问题与Firebase Authentication有关。应用程序和 Web 可以使用 Firebase 身份验证来了解用户的身份。这是一种非常简单的方法,可以轻松实现强大的身份验证。问题是 Couchbase 可以同步网关 verify Firebase ID 令牌吗? @Hod

标签: android firebase firebase-authentication couchbase couchbase-sync-gateway


【解决方案1】:

对于任何寻找答案的人,以下是执行此操作的步骤:

  • Firebase 向您发送一个 id_token(未签名)。我想你已经了解了这部分。
  • 您将此未签名的 firebase id_token 转换为已签名的第 3 方 oidc id_token。我使用在 docker 容器中运行轻量级的 Keycloak 来完成这项工作。请记住,您需要的是 id_token,而不是 access_token。

  • (可选)您使用同步网关 (SGW) ADMIN REST 端点创建用户并将用户分配给他/她的相应 [admin_channels]。
  • 当您在 /_session 端点点击其 REST 接口时,SGW 将接受您的 Keycloak 签名的 oidc 并为您提供一个 cookie。确保将 id_token 字符串以“Bearer id_token_string.......”的格式放入 Authorization 标头中。

一些注意事项:

  • SGW 将根据 SGW.json 配置文件中的“username_claim”关键字定义使用用户名(如果不存在,则创建一个新用户名)。如果您想自定义 SGW 用户名,请使用 Keycloak 客户端的映射器功能。
  • 如果您想在不知道用户密码的情况下获取用户的 id_token,请使用此处提到的实验性令牌交换功能。 enter link description here

  • 您可以像往常一样使用此 cookie 信息通过 SGW 与 couchbase 连接和同步数据。

Couchbase 有一篇文章介绍了如何使用syncgatewaysource为oidc实现隐式流

【讨论】:

    猜你喜欢
    • 2016-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-23
    • 2020-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多