带有Firebase的离子2:在OAuth 2中签名

介绍 这是一个指南,展示如何在Android上使用Firebase认证谷歌用户。 背景 虽然很多人都写过这个指南,但是他们没有解释一个关键的部分——为什么在执行了每一步之后仍然会看到认证错误12501。这里有一个可以帮助你的好步骤指南:https://ionicthemes.com/tutorials/about/ionic2-google-login。我将解释缺失的部分,即在登录时抛出的错误12501,用于Android。 我必须说明我为什么使用我正在使用的方法。我没有使用firebase插件登录,这应该是情况。用于Cordova的Firebase插件对网络认证很有效,但不适合Android。在我写这篇文章的时候,Firebase团队已经承认了这个问题,他们说他们正在解决这个问题。到那时,我将继续使用Cordova插件,它是在Android环境下工作的,而不是在web浏览器中。 假设 我将使用离子2 CLI。我想你们已经知道了 NodeJS安装。增加了对科尔多瓦的支持。Java JDK安装并添加到path android SDK安装并添加到path 基本步骤 在Android环境中使用Firebase认证谷歌用户的Ionic 2应用程序,必须面对一个配置Firebase项目的步骤。如果您最近尝试创建一个Ionic 2项目并连接到Firebase,您就会知道。对于新手来说,以下是成功创建运行项目的步骤。 创建离子2项目-这是绝对的开始。创建新项目 隐藏,启动MyProject blank——v2 我使用了一个空白的项目模板。 在这个阶段,您可能想要检查输出如何使用 隐藏,Codecd副本。 离子服务 添加Android平台-使用CLI, 隐藏,复制代码离子平台添加android 这一点很重要,因为本教程仅针对Android平台。增加了Cordova插件——让我们回到这个项目上来。我们需要一个Cordova插件来显示用户在你的Android设备上配置的设备帐户。这个插件是cordova-plugin-googleplus。要通过CLI将其添加到您的项目中,输入以下命令 隐藏,复制Codecordova插件添加cordova-plugin-googleplus 创建Firebase项目——现在我们转到https://console.firebase.google.com。使用您所选的帐户创建一个Firebase项目(如果还没有创建的话)。创建项目后,单击选项“Authentication”。您将需要设置一个登录方法。进入登录方法选项卡,点击“谷歌”。 。 您必须启用该选项,并复制“Web客户端ID”代码,这可以通过展开“Web SDK配置”看到。 。 它用于访问项目。登录—我添加了一个Ionic 2提供程序,它为我的项目提供了api。我称之为登录服务。 隐藏,复制代码离子g提供的登录服务 我添加了一个方法,叫做nativeLogin: 隐藏,复制CodenativeLogin (): Promise< any>{ 让self = this; 返回GooglePlus.login ({ “范围”:“配置电子邮件”, 'webClientId': CLIENT_ID,这是您之前复制的web客户端ID。 “离线”:真的 }) 不要犹豫(用户数据=比;{ //做你自己的事情……“self.events。发布(LOGGED_IN_EVENT_ID userData);” }); } 确保您添加了捕获抛出的异常或错误的代码。这是所有基本的代码。 让Firebase知道您的应用程序 因此,让我们回到项目的firebase控制台。当您看到项目概述时,您选择“将Firebase添加到您的Android应用程序”选项。这会打开一个模态对话框来填充一些信息。让我们来看看。 打开MyProject项目中的config.xml。复制小部件节点的id。它可能看起来像com.ionicframework.myprojectXXXXXX。将此id复制到firebase项目弹出对话框中的包名字段中。 然后复制小部件下的name节点中的文本。这是你的应用程序名称。 最后,最重要的是:SHA-1。如果你不知道,你的安卓应用在发布之前需要用一个密钥签名。对于最终的发布版本,请遵循官方的谷歌文档。但是现在,由于我们正在调试,我们需要从调试密钥存储库中获得SHA-1密钥。在Windows操作系统中,进入用户配置文件文件夹, 隐藏,复制Code

cd /d "%USERPROFILE%\.android"

运行命令 隐藏,复制Code

keytool -list -keystore debug.keystore

调试。密钥存储库是调试器使用的密钥存储库文件的名称。它可能会提示您输入密码,按回车键。如果那是无效的密码,尝试密码“android”。(如果它仍然不能工作,你必须搜索谷歌的密码问题。)如果密码被接受,那么工具keytool将转储关于密钥存储库的信息。您必须在“证书指纹”中找到SHA1。复制SHA1值,并将其放在firebase弹出对话框中的“调试签名证书SHA-1(可选)”字段中。 主要的p因为您正在创建一个Android应用程序(即使它是作为web应用程序创建的),所以必须将SHA1值提供给firebase项目,并且所有与该项目交互的Android应用程序都必须提供它们的SHA-1密钥。如果您的应用程序使用了另一个SHA-1密钥(可能在发布版本中使用),那么必须将该密钥添加到签名证书列表中。如果您跳过这一部分,那么您的登录过程可能抛出异常,错误代码为12501。 历史 2017- 2月22日-初始版本 本文转载于:http://www.diyabc.com/frontweb/news30690.html

你可能感兴趣的:(带有Firebase的离子2:在OAuth 2中签名)