介绍 这是一个指南,展示如何在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中签名的更多相关文章

  1. CocoaLumberjack+XcodeColor(输出带有颜色的日志)在安装过程中遇到的问题

    在安装的时候遇到了各种坑,(在这里用到的pch文件的使用以及解决无法引入的问题,可以参考上午的文章) 一(XcodeColor的安装).在github上下载XcodeClolor的插件,并且安装,Xc ...

  2. ASP.NET没有魔法——ASP.NET OAuth、jwt、OpenID Connect

    上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与Jwt以及OpenID Connect之间的关系与区别. 本文主要内 ...

  3. OAuth 2 开发人员指南

    这是支持OAuth2.0的用户指南.对于OAuth1.0,一切都是不同的,所以看它的用户指南. 本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部 ...

  4. OAuth 2 开发人员指南(Spring security oauth2)

    https://github.com/spring-projects/spring-security-oauth/blob/master/docs/oauth2.md 入门 这是支持OAuth2.0的 ...

  5. ASP.NET OAuth、jwt、OpenID Connect

    ASP.NET OAuth.jwt.OpenID Connect 上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与J ...

  6. Spring Security OAuth 2开发者指南译

    Spring Security OAuth 2开发者指南译 介绍 这是用户指南的支持OAuth 2.0.对于OAuth 1.0,一切都是不同的,所以看到它的用户指南. 本用户指南分为两部分,第一部分为 ...

  7. OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法

    OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...

  8. 集成基于OAuth协议的单点登陆

    在之前的一篇文章中,我们已经介绍了如何为一个应用添加对CAS协议的支持,进而使得我们的应用可以与所有基于CAS协议的单点登陆服务通讯.但是现在的单点登陆服务实际上并不全是通过实现CAS协议来完成的.例 ...

  9. ASP.NET OAuth:解决refresh token无法刷新access token的问题

    最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...

随机推荐

  1. 解决warning MSB8012:问题

    问题描述: C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppBuild.targets(990,5): warning M ...

  2. 【jmespath】—4. 进阶 Flatten Projections

    这里要怎么翻呢?扁平投影? 一.Flatten Projections 1. 核心1 这个可以暂时忽略,一个重要的核心是:对于列表/对象投影,在投影中创建投影时,原始文档的结构将保留. 说人话就是,比 ...

  3. 使用Docker构建PHP7.4 + Swoole + Redis镜像

    使用Docker构建PHP7.4 + Swoole + Redis镜像 Docker是一个用于开发,交付和运行应用程序的开放平台.开发者可以利用Docker来快速交付,测试和部署代码,从而大大减少编写 ...

  4. Mysql优化概述及其压力测试工具

    衡量指标 TPS:Transactions Per Second (每秒传输的事物处理个数) ,这是指服务器每秒处理的事物数,支持事物的存储引擎如Innodb等特有的一个性能指标; QPS:Queri ...

  5. docker打包项目

    nginx镜像制作实战 docker容器的主业 docker理念里,容器启动时,应当为它指定主业是什么,如nginx容器主业就是nginx代理服务,tomcat容器就是web服务等等 1.容器创建时, ...

  6. 查看Java一段程序运行了多长时间(以几小时几分几秒的形式显示)

    我们通常可以用 long ms=System.currentTimeMillis(); 来取得以毫秒为单位起始时间和终止时间,它们的时间差除以一千就知道一段Java程序运行了多少秒,但多少秒并不直观, ...

  7. bind,call,apply模拟实现

    首先,三者第一个参数都为this指向 区别 bind返回的是一个函数体 call和apply会直接执行,但是call参数需要一个一个进行传递,apply的第二个参数是一个数组 实现 bind 简单实现 ...

  8. 11.redis cluster的hash slot算法和一致性 hash 算法、普通hash算法的介绍

    分布式寻址算法 hash 算法(大量缓存重建) 一致性 hash 算法(自动缓存迁移)+ 虚拟节点(自动负载均衡) redis cluster 的 hash slot 算法 一.hash 算法 来了一 ...

  9. UI中table写表格

  10. node进阶| 解决表单enctype="multipart/form-data" 时获取不到Input值的问题

    今天在学习node踩到一个坑:form设置enctype="multipart/form-data"上传文件时,无法获取到表单其他input的值. 因为之前上传文件用的是 form ...