问题标签 [angularjs-authentication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
angularjs - AngularJS 和 Firebase 身份验证
我想使用 Firebase 后端向我的 AngularJS 应用程序添加身份验证机制。要求很简单:
- 经过身份验证的用户应该能够访问任何页面。
- 如果未经身份验证的用户访问
/some_page
(除 之外的任何页面/login
),他们应该被重定向到/login
. 一旦他们输入正确的凭据,他们应该被重定向回/other_page
.
此处描述的可能解决方案做出以下假设:
我的解决方案假定以下服务器端行为:对于每个 /resources/* 调用,如果用户未授权,则响应 401 状态
但是,我不确定在使用 Firebase 作为后端时是否可以强制执行此行为。
任何实现此类 AngularJS+Firebase 集成的帮助和/或示例将不胜感激!
angularjs - AngularJS: How to hide the template content until user is authenticated?
My app has 2 pages: main.html
and login.html
.
When not authenticated users go to /main
they should be redirected to /login
.
The problem is that main.html
is rendered first, and after a second or so, when user authentication fails, login.html
is rendered.
How could I prevent from main.html
to be rendered until authentication succeeds?
Here is the relevant code (CoffeeScript):
redirect - 用户登录后重定向
我对 Angular 还是很陌生,现在我只是想设置我所有的路线并按照我的意愿工作。
设置:
当用户导航到某些页面(/settings
在本例中)时,应用程序应检查是否有用户已登录。如果有,则照常继续。否则,用户应该转到登录页面 ( /login
)。
我想要什么:
用户成功登录后,他们应该转到他们最初尝试访问的页面(/settings
)
我的问题: 是否有一种“角度方式”来记住用户试图去哪里?
相关代码:
应用程序.js
登录.js
非常感谢 John Lindquist的视频让我走到了这一步。
javascript - AngularJS | 在加载之前处理路由
我希望通过外部服务为我的路由创建一个简单的身份验证检查。
我定义了路由对象的访问要求:
然后,我检查我是否在$routeChangeStart
活动中获得许可。
实际上,它有效-
如果用户未通过身份验证,则将他移动到登录页面,如果他已通过身份验证,但路由仅适用于匿名用户,则将其移动到另一个页面,等等。
但是 - 这种重定向实际上是在控制器和模板加载之后发生的! 即使我没有经过身份验证,它也会导致我的控制器对我的 REST API 做一些不必要的请求。
在他们处理之前如何处理路线?
angularjs - angularjs拦截器$broadcast不起作用
我正在玩弄 http://ngmodules.org/modules/http-auth-interceptor的代码, 我想知道为什么
不会触发控制器中的警报
编码:
更新
安全.php
有什么问题?
angularjs - locationChangeStart 和防止路线改变
我正在尝试创建基本验证用户是否可以访问某些路线。我在这方面取得了进展,但有一件事我无法弄清楚。
我正在使用 $locationChangeStart 来监控路线变化。场景是: 1. 如果用户已登录,则允许他访问所有路由,除了 auth 路由(登录、注册)。我通过从我的 AuthFactory 2 调用方法 isAuthenticated() 来检查这一点。如果用户没有登录,那么他只能访问登录和注册路由。应阻止任何其他路由,在这种情况下应将用户重定向到登录。
困扰我的事情是具有 preventDefault() 的事情。如果应用程序使用 preventDefault() 到达代码,location.path()
那么之后的代码将无法正常工作。
但是,如果我删除event.preventDefault()
,则location.path()
有效。这个问题是我需要防止,以防非登录尝试访问一些非身份验证页面。
基本上,我希望能够根据请求的路线阻止或重定向。这样做的正确方法是什么?
angularjs - 使用 AngularJS 进行身份验证、使用 REST Api WS 进行会话管理和安全问题
我开始使用 angularJS 开发一个网络应用程序,但我不确定一切是否安全(客户端和服务器端)。安全性基于单个登录页面,如果凭据检查正常,我的服务器会发回具有自定义时间有效性的唯一令牌。所有其他 REST api 都可以通过此令牌访问。应用程序(客户端)浏览到我的入口点 ex:https ://www.example.com/home.html用户插入凭据并接收回一个唯一令牌。此唯一令牌使用 AES 或其他安全技术存储在服务器数据库中,它不是以清晰的格式存储的。
从现在开始,我的 AngluarJS 应用程序将使用此令牌对所有暴露的 REST Api 进行身份验证。
我正在考虑将令牌临时存储在自定义 http cookie 中;基本上,当服务器验证凭据时,它会发回一个新的 cookie Ex。
cookie 设置了安全和仅 HTTP标志。Http协议直接管理新的cookie并存储。连续的请求会以新的参数呈现 cookie,而不需要用 javascript 管理和存储它;在每次请求时,服务器都会使令牌无效并生成一个新令牌并将其发送回客户端 --> 使用单个令牌防止重放攻击。
当客户端从任何 REST Api 接收到 HTTP 状态401 未经授权的响应时,角度控制器会清除所有 cookie 并将用户重定向到登录页面。
我应该考虑其他方面吗?将令牌存储在新的 cookie 中还是 localStorage 中更好?关于如何生成独特的强令牌的任何提示?
编辑(改进):
- 我决定使用 HMAC-SHA256 作为会话令牌生成器,有效期为 20 分钟。我生成一个随机的 32 字节 GUID,附加时间戳并通过提供 40 字节密钥来计算 HASH-SHA256。由于令牌的有效性非常小,因此几乎不可能发生冲突。
- Cookie 将具有域和路径属性以提高安全性。
- 不允许多次登录。
javascript - AngularJS- 每个路由和控制器中的登录和身份验证
我有一个使用 yeoman、grunt 和 bower 创建的 AngularJS 应用程序。
我有一个登录页面,其中有一个检查身份验证的控制器。如果凭据正确,我将重新路由到主页。
应用程序.js
登录控制器.js
在主页上我有
在 中loginController
,我检查登录信息,如果成功,我在服务工厂中设置用户对象。我不知道这是否正确。
我需要的是,当用户登录时,它会在用户对象中设置一些值,以便所有其他页面都可以获得该值。
每当发生任何路由更改时,控制器都应检查用户是否已登录。如果没有,它应该重新路由到登录页面。此外,如果用户已经登录并返回该页面,它应该转到主页。控制器还应该检查所有路由的凭据。
我听说过 ng-cookies,但我不知道如何使用它们。
我看到的许多示例都不是很清楚,它们使用了某种访问角色或其他东西。我不想那样。我只想要一个登录过滤器。有人可以给我一些想法吗?
javascript - AngularJS - 登录并关闭选项卡后,它不会重定向到主页
我用 yeoman、grunt 和 bower 创建了一个 angularJS 应用程序。我尝试了一个简单的登录示例。登录后会跳转到首页。对于任何路线更改,它将检查用户是否已登录。如果登录,它将重定向到主页或特定路由,否则重新路由到登录页面。这一切对我来说都很好。
这是app.js
这是我的loginControler.js
一切对我来说都很好。
由于我使用的是 grunt,所以 url 就像http://localhost:9000/#/login
登录后它会转到主页,如果我输入 like http://localhost:9000/#/login
orhttp://localhost:9000/#/register
或任何其他 url。如果我注销并尝试任何页面,它就会登录。
问题是,当我尝试登录http://localhost:9000/
或关闭选项卡并再次打开 url 后,它将进入登录页面(意味着loggedUser 为空)。
为什么会这样?我该如何解决?
我需要设置一些cookies或其他东西吗?如果是这样,怎么做?
angularjs - 设置 http 授权标头时,AngularJS 应用程序崩溃
我想向 twitter api 发出请求并获取当前登录的用户源。
我用“apigee”尝试了 twitter api,一切正常。即使将授权标头从“apigee”复制到“邮递员”中,我也会取回数据。
好吧,但是当我尝试在我的 angular-app 中发出 http-request 时,整个应用程序停止工作。在浏览器中只有输出“{{message}}”,控制台打印两条错误消息:
我的应用程序中的代码如下所示
谁能帮助我或告诉我我做错了什么。凯文