【发布时间】:2014-06-21 04:15:01
【问题描述】:
我对网络开发比较陌生,所以如果这个问题有点基础,我深表歉意。在过去的 3 个小时里,我一直在研究如何解决这个我认为很常见的问题。但是,由于我不是专家,我无法判断我的理解是否正确。
简而言之,我正在使用 AngularJS 开发一个简单的网络应用程序,并使用 Google App Engine 作为我的数据存储。我曾想过将 Firebase 用作我的数据存储,但我非常喜欢 Google App Engine 的某些功能(主要是查询能力)。
本质上,我的网站将拥有用户。用户可以创建项目。用户可以授予其他用户对其项目的访问权限。对于给定的项目(具有给定的 projectID),只有某些用户应该能够访问它。因此,对 /rest/projects/[projectID] 的 http.$get 请求应该只能由项目中具有该 projectID 的用户访问。
从概念上讲,根据我的阅读理解,理想的情况是,如果我在 Google App Engine 中有一个用户登录系统,在登录时会发回会话令牌或 cookie。然后,每当我从 AngularJS 向服务器发出请求时,我都会通过 HTTP 标头发送这个令牌/cookie。然后,我的服务器可以解析这个 cookie 以了解它是什么用户,并从中确定用户是否应该有权访问特定项目。
Google App Engine 似乎没有允许自定义电子邮件/密码的身份验证系统;换句话说,我不想使用 App Engine 的使用用户的谷歌帐户进行身份验证的选项。我希望用户能够使用他们拥有的任何电子邮件和他们想要的任何密码进行注册。
事实证明,Firebase 有一个 SimpleLogin 模块,我可以轻松实现它。但是,我从 Firebase 收到的身份验证令牌并不能真正用于在 Google App Engine 上实现安全性,对吗?
最终我的问题归结为:假设我使用 Firebase 的 SimpleLogin 对用户进行身份验证,并使用 FireBase 的 SimpleLogin 中的身份验证令牌来存储用户是否已登录。我无法使用该令牌来强制我的数据存储的安全性(谷歌应用引擎),对吧?
【问题讨论】:
标签: angularjs google-app-engine authentication cookies firebase