将Firebase身份验证与Google App Engine配合使用

时间:2018-02-01 13:59:25

标签: firebase google-app-engine polymer firebase-authentication

我是一个新手,所以任何帮助表示赞赏。

我使用Google App Engine(节点)创建了一个应用程序/服务,它返回了一个简单的“hello world'回复,请参阅https://resumetemplatesconverter.appspot.com/

我还有一个Polymer Web应用程序,它使用Firebase身份验证进行注册,登录,注销等。

问题是,配置Google App Engine应用/服务的最佳方式是什么,以便只有通过Polymer Web应用程序验证的用户才能使用它?

感谢。

1 个答案:

答案 0 :(得分:1)

Firebase(授权服务器)将令牌(访问令牌)发送回客户端(浏览器)。

客户端现在使用该令牌向您的应用引擎服务(资源服务器)发出请求。

您需要做的是检查令牌是否有效以及是否有效,返回该秘密数据

OAuth 2.0 规范没有明确定义资源服务器和授权服务器之间的交互以进行访问令牌验证:

  

访问令牌属性和用于访问受保护资源的方法超出了本规范的范围,并由配套规范定义。

因此,对于您使用的每种身份验证服务(Google,Facebook,GitHub等),您必须查找如何验证访问令牌。

示例:

<强>谷歌

请求(来自您的应用引擎后端)

https://www.googleapis.com/oauth2/v3/tokeninfo?id_token=XYZ123

响应

{
 // These six fields are included in all Google ID Tokens.
 "iss": "https://accounts.google.com",
 "sub": "110169484474386276334",
 "azp": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
 "aud": "1008719970978-hb24n2dstb40o45d4feuo2ukqmcc6381.apps.googleusercontent.com",
 "iat": "1433978353",
 "exp": "1433981953",

 // These seven fields are only included when the user has granted the "profile" and
 // "email" OAuth scopes to the application.
 "email": "testuser@gmail.com",
 "email_verified": "true",
 "name" : "Test User",
 "picture": "https://lh4.googleusercontent.com/-kYgzyAWpZzJ/ABCDEFGHI/AAAJKLMNOP/tIXL9Ir44LE/s99-c/photo.jpg",
 "given_name": "Test",
 "family_name": "User",
 "locale": "en"
}

您可以从后端服务器发出此明确请求,但最好使用其中一个Google API Client Libraries

有关Authenticate with a backend server

的详情,请参阅此处