4

我想使用 Firebase 后端向我的 AngularJS 应用程序添加身份验证机制。要求很简单:

  • 经过身份验证的用户应该能够访问任何页面。
  • 如果未经身份验证的用户访问/some_page(除 之外的任何页面/login),他们应该被重定向到/login. 一旦他们输入正确的凭据,他们应该被重定向回/other_page.

此处描述的可能解决方案做出以下假设:

我的解决方案假定以下服务器端行为:对于每个 /resources/* 调用,如果用户未授权,则响应 401 状态

但是,我不确定在使用 Firebase 作为后端时是否可以强制执行此行为。

任何实现此类 AngularJS+Firebase 集成的帮助和/或示例将不胜感激!

4

3 回答 3

2

一种解决方案是使用$route服务在客户端进行路由。

当用户通过 Firebase 进行身份验证时,在客户端上保存一些记录,例如在本地存储、一些无所不包的控制器或您自己的 Angular服务(我的首选选项)中。

在您的路由控制器中,如果用户已通过身份验证,则重定向到/some_page,否则重定向到/login并跟踪用户打算去的$location 。

另一方面,如果您想使用您的服务器进行路由,您可以通过让您的服务器生成 Firebase auth tokens来使用您链接到的解决方案。

于 2013-02-21T19:52:00.003 回答
1

我最近有同样的要求,偶然发现了这篇博文。 http://www.42id.com/articles/firebase-authentication-and-angular-js/

它解释了如何设置与 Firebase 交互的 Angular JS 应用程序。还包括使用 Firebase API 针对 Google+ 和 Github 等 OAuth 提供者进行身份验证的方法、基于身份验证状态的路由、在 Firebase 上存储用户配置文件信息以及在 Firebase 上设置安全规则以保护用户数据。

于 2015-04-14T14:39:04.700 回答
0

如果您使用 Firebase 简单登录(而不是在您自己的服务器上生成身份验证令牌),您可以在此处查看如何在客户端检测您的登录状态: 登录后显示文本

于 2013-02-22T20:01:34.390 回答