热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

phpFirebase令牌验证

我有一个PHP后端和一个Android客户端.使用客户端,用户可以通过Firebase使用Google或Facebook登录到我的应用程序.我从FirebaseUser获得令牌并将

我有一个PHP后端和一个Android客户端.使用客户端,用户可以通过Firebase使用Google或Facebook登录到我的应用程序.我从FirebaseUser获得令牌并将其发送到我的服务器.显而易见的是,第一部分(标头)包含算法(RS256),第二部分(有效负载)具有所有与用户相关的数据.第三部分是前两个部分的签名,以便在我的后端进行验证.问题是,我不知道该怎么做.更具体地说是什么.

我使用JWT.io来检查我的令牌,并尝试通过运气来验证它.由于使用的算法是RS256,因此验证应通过公钥进行.但是什么公钥?我尝试使用我的应用程序的密钥库,尝试使用Google的证书,但是一直在说它无效.我知道标题的孩子字段是签名密钥的ID,我应该寻找它,但是我不知道在哪里.

Firebase文档也无济于事.有一个关于ID token verification的指南,但这没什么用,因为它是Java / Node.JS,并且仍然没有提及任何有关公共密钥的内容.

所以问题是:我从哪里获得公钥?

解决方法:

好的,所以我深入研究了Firebase Server SDK的源代码,并找到了公钥的位置:
https://www.googleapis.com/robot/v1/metadata/x509/securetoken@system.gserviceaccount.com

真的不知道为什么他们不能将其放在他们的网站上…

无论如何,我不确定,但是我想这些密钥每天都会更改(就像OAuth2密钥一样),因此您必须不时检查并重新缓存在服务器上.

另外,您必须检查以下值:

> alg ==“ RS256”
> iss:https://securetoken.google.com/\u0026lt; firebaseProjectID>
> aud:
>子为非空


Found these at 07001 (just scroll to the bottom of the answer), which was found by searching for that specific googleapis.com URL.




推荐阅读
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • Vagrant虚拟化工具的安装和使用教程
    本文介绍了Vagrant虚拟化工具的安装和使用教程。首先介绍了安装virtualBox和Vagrant的步骤。然后详细说明了Vagrant的安装和使用方法,包括如何检查安装是否成功。最后介绍了下载虚拟机镜像的步骤,以及Vagrant镜像网站的相关信息。 ... [详细]
  • 我创建了一个新的AWSSSO(使用内部IDP作为身份源,因此不使用ActiveDirectory)。我能够登录AWSCLI、AWSGUI,但 ... [详细]
  • 我正在尝试将Firebase添加到涉及添加以下内容的现有应用程序中:classpath'com.googl ... [详细]
  • 本文介绍了解决Netty拆包粘包问题的一种方法——使用特殊结束符。在通讯过程中,客户端和服务器协商定义一个特殊的分隔符号,只要没有发送分隔符号,就代表一条数据没有结束。文章还提供了服务端的示例代码。 ... [详细]
  • Iamtryingtomakeaclassthatwillreadatextfileofnamesintoanarray,thenreturnthatarra ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • 酌惶S蹬粮偕06搜e40http:p.baidu.compaicenter?uid203161626337656433346554b8726v迷孤U史0ehttp:p.baidu.com ... [详细]
  • OAuth2.0指南
    引言OAuth2.0是一种应用之间彼此访问数据的开源授权协议。比如,一个游戏应用可以访问Facebook的用户数据,或者一个基于地理的应用可以访问Foursquare的用户数据等。 ... [详细]
  • iOS 集成Facebook 第三方分享报错[FBSDKInternalUtility validateAppID]: failed for URL: fbauth2:/error:...
    2019独角兽企业重金招聘Python工程师标准出现这种原因主要是因为info.plist文件里面没有添加一些配置文件转载于:https:my.oschina.net1715 ... [详细]
  • NSD cisco高级路由与交换技术2014.8.12
    实验01:DHCP服务的应用实验目标:通过建立DHCP服务,给计算机自动分配地址实验环境:实验步骤:一、配置计算机pc8pc ... [详细]
  • Java GC详解1. 最全面的理解Java对象结构对象指针 OOPs
    java,gc,详解,1,最,全面,的,理解,java,对象,结构, ... [详细]
author-avatar
moon2502863581
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有