- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我使用 Actions SDK 创建了 Actions on Google 应用。为此,我使用了前面所说的 Actions SDK、firebase 函数来实现,使用 firestore 来存储数据。一切正常。
现在我想实现帐户链接以提供用户特定信息。我开始阅读完整的documentation对于与帐户链接的指的是集成 Oauth 2.0 服务器等。这是我第一次使用帐户链接和 Oauth 服务器,现在我完全困惑了。我不明白我的身份验证服务器必须位于何处,如何设置它以及它必须处理哪些参数。在阅读更多内容并搜索结果后,我发现 firebase 提供帐户身份验证。这个 Firebase 产品是否类似于 Oauth 服务器?
我的下一个大问题是如何在我的 Actions 应用程序中启用帐户链接。在 Google 文档中的操作中,我发现了 topic如何扩展帐户链接的操作包。我的问题是了解原虫需要哪些信息。
总结一下,如果 firebase 身份验证确实是一个 Oauth 服务器,我需要做什么才能让我的应用程序和 firebase 身份验证一起工作。
也许每个人都知道一个很好的网站来了解帐户链接的过程以及如何实现。
更新1:
在获得问题的第一个答案后,我开始研究有关帐户链接和身份验证过程的更多信息。
在此之后,我创建了以下路线图:
所以我从第一步开始。在 firebase 身份验证文档中,我找到 example for a google login form 。修改并托管示例后,我尝试了一下。效果很好。使用托管网站登录后,我的谷歌帐户与我的项目链接。我在我的谷歌帐户设置中检查了这一点。此外,示例响应还包含大量数据,例如个人资料名称、电子邮件地址等。所以我现在的问题是。为什么我现在必须设置 OAuth 服务器?使用示例表单登录后,我成功将我的帐户链接到我的项目。这样我就可以开始将接收到的数据保存在我的 firebase 数据库中,并在我的 Actions 应用程序中使用它们。
更新2:
好的。也许我在理解帐户链接的正确使用方面存在普遍问题。我尝试在下次回来时识别出使用我的操作提供特殊内容的用户。或者也许可以在问题中使用他的谷歌帐户中的他的名字创建一个问题。因此,根据我的理解,我必须将用户的谷歌帐户与我的操作链接起来,并将帐户信息保存在数据库中,以便下次识别使用。那么此任务的帐户链接正确吗?
最佳答案
不,Firebase 身份验证不是 OAuth2 服务器。
Firebase 身份验证为您提供了一种管理基于 Firebase 的网络或移动应用的用户帐户的方法。通过 Auth UI,用户可以通过多种方式(包括 Google 帐户、Facebook 帐户或电话号码)登录该帐户。但是,它不提供 OAuth2 服务器提供的组件。
最值得注意的是,它不提供任何方式让用户通过另一个客户端(例如 Google Assistant)登录以获得该客户端的授权。通过 Firebase 身份验证,您无法向 Google 助理颁发 token ,也无法接受来自 Google 助理的 token 并验证这是否是 Firebase 身份验证中的用户。
您需要自己构建这些组件。谷歌 describes the minimum tasks that it needs to do as part of this authentication 。在构建这样的服务器时,您可以使用 Firebase 身份验证作为其中的一部分(例如,这是让人们登录其帐户并让您验证该帐户的好方法),并且使用 Firebase 数据库是合理的如果您采用这种方式来存储用户 token ,Firebase Functions 可能是实现 token 交换点的有用位置,并且 Firebase Hosting 可以很好地托管登录页面本身 - 但您需要编写“将所有内容都放在其中”的代码在一起”。
您的身份验证服务器可以位于任何地方。正如我所说 - 您可以通过 Firebase Functions 来完成此操作,但您没有它。它只需要能够通过 HTTPS 端点的 Web URL 提供一些响应。
对更新 1 的响应
After sing in by using the hosted website, my google account linked with my project. I checked this in my google account settings.
从 OAuth 的角度来看 - 不,Google 帐户并未“链接”到您的项目。
Google 已向您(即您编写的服务)颁发了一个 token ,使您的服务可以访问某些资源。这些资源包括有关特定用户的信息。
这听起来像是我在分割语义,但事实并非如此。它对于 OAuth 所提供的内容及其在您获得 token 时的含义至关重要。您目前有权执行某些操作。
Why do i have to set up a OAuth server now? After sign in with the example form i linked my account to my project successful. And so i can start saving the received data in my firebase database and act with them in my Actions app.
您尚未关联您的帐户。您有权执行某些操作。
此外,除了“他们就是这样做的”之外,您还需要设置一个 OAuth 服务器,因为您现在需要为 Google 做同样的事情 - 授予他们在<上执行特定操作的权限em>你的服务器(比如使用它)。通常这会涉及“登录”。
帐户链接实际上是“登录”的一个奇特术语。您需要一种方法让用户能够登录您的服务器。您拥有一个访问 token ,但这大致相当于登录到 Google 的服务器。
那么为什么很多网站都有“使用 Google 登录”或“使用 Facebook 登录”之类的内容呢?因为这些网站愿意相信,如果他们的服务器能够获得 Google 或 Facebook 的某些信息的许可,那么他们就可以信任你。当他们登录您的网站(通过网络或通过操作)时,您可能愿意接受这一点,但助理不能假设这一点。他们需要确保用户确实登录到您的网站 - 该用户是故意想要这样做,并且您故意想让他们登录。
关于firebase - 添加链接到我的 Actions on Google 应用的帐户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47099318/
当包裹在 EmberJS Controller 的 actions 中时,如何从另一个 Action 调用一个 Action ? 使用现已弃用的方式定义操作的原始代码: //app.js App.In
我有一个 Action (一个yaml文件),用于将docker镜像部署到Google Cloud Run。 我希望收到通知构建和推送结果的Slack或电子邮件。 构建操作完成后,如何触发消息操作?
Selenium 的 actions 类中存在的 tick(Action action) 和 tick(Interaction...actions) 方法的用途是什么? 是否与点击任何 webElem
简短的背景故事 我们目前为数百名用户提供对话操作。我们在过去三年中为我们的一位客户开发了这个 Action 作为“工作”。正如我们最近发现的那样,我们会受到对话行为的影响。 当然,我们现在正在研究如何
考虑系统用户可以并发方式执行两个操作,第一个操作 (A1) 仅对用户的订单执行,第二个操作 (A2) 包括在执行时执行 (A1),如下面的使用所述-案例图..((考虑A1完全执行U1,A2完全执行U2
我正在为 android 中的 ActionBar 而苦苦挣扎。 这是我的问题:我的操作项没有显示在操作栏中,而是堆叠在操作溢出中,无论我做什么.. 我花了一天的时间寻找解决方案,但我似乎找不到缺少的
我正在构建一个工作流,其中一个操作为工作流中的一个步骤提供条件。我该如何使用这个值? 该操作的值为空,因此计算结果为 false,并且从未部署过任何内容... jobs: build: s
鉴于您有一些全局 View (例如,显示加载屏幕),您可能希望在许多情况下发生这种情况,为该行为创建一个 Action 创建者/ Action 对还是为相关 Action 创建 reducer 更合适
我有一个使用 DialogFlow 构建的 Actions on Google 代理,其中包含多个操作(例如 actions.intent.MAIN 和 get_day_of_week)。 当我在 3
是否可以从我的 action.yml 文件中引用另一个 GitHub 操作? 请注意,我在这里谈论的是操作,而不是工作流程。我知道这可以通过工作流来完成,但是操作可以引用其他操作吗? 最佳答案 答案似
在 Vuex 操作中,我们有以下实现。 async actionA({ commit, dispatch }) { const data = this.$axios.$get(`/apiUrl`)
我正在将我的应用程序服务器从 Jboss 4.2 迁移到 7.1。我在 Struts 配置中收到以下错误。 struts.xml 中定义的 Action 被调用,而 Action 包中的操作未被调用。
我向 ActLand 发送请求,然后 intercept(),如果没有登录则重定向到 Login.jsp。 struts.xml:
我有一个 Action 创建器,它接受一个 id 和一个回调函数。它向服务器发送请求以执行某些操作并返回一个虚拟操作。我在这里想做的就是调用回调函数并退出,因为该虚拟操作对我来说没有用处,例如喜欢帖子
我已经使用 Html.Action 方法调用了另一个 View 。当用户单击操作链接时,我想在 subview 内使用参数调用相同的操作。 当我写这段代码时,我得到了这个错误信息: Html.Acti
是 public event Action delt = () => { Console.WriteLine("Information"); }; 的重载版本 Action delg = (a, b)
countresultsfrom.addActionListener(new ActionListener() { public void actionPerforme
我刚刚看到一个 brand-new video在 Rx 框架上,一个特别的签名引起了我的注意: Scheduler.schedule(this IScheduler, Action) 在 23:55,
我创建了一个在我的开发者帐户中完美运行的 DialogFlow 应用程序。 但我需要以另一个用户的身份对其进行测试,因此在我的 Google Action 模拟器中,我添加了另一个测试帐户作为项目的所
我正在尝试实现消息存储拦截器以在我的 JSp 上显示 ActionMessage,但无法访问 ActionMessage。有人可以提供一个链接如何实现消息存储拦截器吗? 最佳答案 这是我的一个应用程序
我是一名优秀的程序员,十分优秀!