带有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 ...
随机推荐
- 用IDEA一年了,终于敢说自己会用了
作为Java老兵,我也是用了很多年的eclipse,为了与时俱进,于是切换到了IDEA.刚开始的时候感觉很不适应,感觉这玩意儿不如eclipse好用,影响工作效率,于是又换回eclipse. 但是很多 ...
- <init>与<clinit>,static与final与static final
<init>和<clinit> init是对象构造器方法,初始化对象的时候执行 clinit是类构造器方法,类加载的初始化阶段执行 final常量赋值(必须是一下其中一种) 显 ...
- java中变量在内存的位置
package day02; /* * 成员变量:在堆内存中,因为对象的存在,才在内存中存在:作用于整改类中 * 局部变量:在栈内存中:作用于函数中,或者语句中 * */ class car{ //描 ...
- Mockito在JUnit测试中的使用
Mockito是一种用于替代在测试中难以实现的成员,从而让testcase能顺利覆盖到目标代码的手段.下面例子将展示Mockito的使用. 完整代码下载:https://files.cnblogs.c ...
- C#开发PACS医学影像处理系统(一):开发背景和说明
本系列文章将从以下模块和大家分享和讨论使用C#开发医学软件PACS和RIS系统, 国内相关资料比较少,也借此机会丰富一下医学软件开发生态,讨论技术难点,希望大家互相帮助共同进步. 章节介绍及截图预览: ...
- linux:apache-配置基于域名的虚拟机主机
一个http服务要配置多个站点,就需要用到虚拟机主机. 虚拟机主机一般有三类:1.基于域名 2.基于端口 3.基于ip 举例操作基于域名配置三个站点: 域名 站点目录 www.eejind.com ...
- 【NOIP2013模拟】七夕祭
题目描述七夕节因牛郎织女的传说而被扣上了「情人节」的帽子.于是TYVJ今年举办了一次线下七夕祭.Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七夕祭和 ...
- 学习STM32的一些记录_创建库函数版本的工程
1.新建一个文件夹,用于存放MDK的工程所有文件.例如新建文件夹Template. 2.在Template下新建一个USER文件夹,用于存放工程. 3.打开MDK5,新建工程,目录在USER下. 4. ...
- ajax之---上传文件
“伪”ajax向后台提交文件 <iframe style="display: none" id="iframe1" name="i ...
- Vue axios封装 实现请求响应拦截
封装 axios.js import axios from 'axios' import { baseURL } from '@/config' class HttpRequest { constru ...