带有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中签名的更多相关文章
- CocoaLumberjack+XcodeColor(输出带有颜色的日志)在安装过程中遇到的问题
在安装的时候遇到了各种坑,(在这里用到的pch文件的使用以及解决无法引入的问题,可以参考上午的文章) 一(XcodeColor的安装).在github上下载XcodeClolor的插件,并且安装,Xc ...
- ASP.NET没有魔法——ASP.NET OAuth、jwt、OpenID Connect
上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与Jwt以及OpenID Connect之间的关系与区别. 本文主要内 ...
- OAuth 2 开发人员指南
这是支持OAuth2.0的用户指南.对于OAuth1.0,一切都是不同的,所以看它的用户指南. 本用户指南分为两个部分,第一部分是OAuth2.0提供端(OAuth 2.0 Provider),第二部 ...
- OAuth 2 开发人员指南(Spring security oauth2)
https://github.com/spring-projects/spring-security-oauth/blob/master/docs/oauth2.md 入门 这是支持OAuth2.0的 ...
- ASP.NET OAuth、jwt、OpenID Connect
ASP.NET OAuth.jwt.OpenID Connect 上一篇文章介绍了OAuth2.0以及如何使用.Net来实现基于OAuth的身份验证,本文是对上一篇文章的补充,主要是介绍OAuth与J ...
- Spring Security OAuth 2开发者指南译
Spring Security OAuth 2开发者指南译 介绍 这是用户指南的支持OAuth 2.0.对于OAuth 1.0,一切都是不同的,所以看到它的用户指南. 本用户指南分为两部分,第一部分为 ...
- OAuth认证协议原理分析及同步消息到Twitter和Facebook使用方法
OAuth有什么用?为什么要使用OAuth? twitter或豆瓣用户一定会发现,有时候,在别的网站,点登录后转到 twitter登录,之后转回原网站,你会发现你已经登录此网站了,这种网站就是这个效果 ...
- 集成基于OAuth协议的单点登陆
在之前的一篇文章中,我们已经介绍了如何为一个应用添加对CAS协议的支持,进而使得我们的应用可以与所有基于CAS协议的单点登陆服务通讯.但是现在的单点登陆服务实际上并不全是通过实现CAS协议来完成的.例 ...
- ASP.NET OAuth:解决refresh token无法刷新access token的问题
最近同事用iOS App调用Open API时遇到一个问题:在access token过期后,用refresh token刷新access token时,服务器响应"invalid_gran ...
随机推荐
- GLSL 着色器程序
除了使用Cg/HSL 着色器程序以外, OpenGL 着色器语言(GLSL)着色器可以直接书写shader. 然而,使用原生的GLSL只推荐作为测试使用,或者你清晰的知道你的目标平台是 Mac OS ...
- 单元测试框架 python
1.为什么要做单元测试 单元测试更细致.更有针对性 单元测试能测试到很多系统测试无法达到的测试 单元测试是在编码中做的测试,发现问题方便修改,而系统测试的问题修改成本可能变高 单元测试是自动化测试 2 ...
- cometoj(A-D+F+H)代码
A #include<cstdio> #include<cstring> #include<algorithm> #include<iostream> ...
- 2申请高德地图key 初始化地图
https://console.amap.com/dev/key/app vue-amap-基于-vue-2x-与高德的地图组件 https://elemefe.github.io/vue-amap/ ...
- 文件压缩跟解压(本地&Linux服务器)
远程解压需要的jar包: <dependency> <groupId>commons-net</groupId> <artifactId>commons ...
- whlie do-whlie
switch语句 用于根据多个不同条件执行不同动作. while 循环 while循环基本语法: 条件初始化; while(条件表达式){ //条件表达式就是判 ...
- Docker Compose 搭建 Redis Cluster 集群环境
在前文<Docker 搭建 Redis Cluster 集群环境>中我已经教过大家如何搭建了,本文使用 Docker Compose 再带大家搭建一遍,其目的主要是为了让大家感受 Dock ...
- js垃圾回收和内存泄漏
js垃圾回收和内存泄漏 js垃圾回收 Js具有自动垃圾回收机制.垃圾收集器会按照固定的时间间隔周期性的执行. 1.标记清除(常用) 工作原理:是当变量进入环境时,将这个变量标记为"进入环境& ...
- FTL指令常用标签及语法
FTL指令常用标签及语法注意:使用freemaker,要求所有标签必须闭合,否则会导致freemaker无法解析. freemaker注释:<#-- 注释内容 -->格式部分,不会输出 - ...
- 实验 3:Mininet 实验——测量路径的损耗率
实验目的 在实验 2 的基础上进一步熟悉 Mininet 自定义拓扑脚本,以及与损耗率相关的设 定:初步了解 Mininet 安装时自带的 POX 控制器脚本编写,测试路径损耗率. 实验任务 h0 向 ...