2015-02-23 193 views
8

在用angularJS构建我的SPA时,我来到了我想在我的angularJS网站中实现用户身份验证的地步。但是,我不知道从哪里开始以及最佳做法是什么。AngularJS + Laravel 5身份验证

基本上我有一个肯定可以有一个或多个角色。我查找了一些例子,所以我可以对如何正确处理这个问题有一个基本的了解,但到目前为止,我只是遇到了非常简单或不太安全的例子(如this)。

所以我的问题是,如何我使用REST(或自定义的API网址)来验证用户,然后显示使用angularJS页面上的用户信息,同时还通过确保最佳的安全性覆盖率(实现身份验证服务例如)来自Laravel的csrf标记?

由于提前, 尼克·范德Meij

回答

18

我正在做一个AngularJS应用,并使用Laravel 5制成的后端的API基于REST,而我的验证方法是:

  1. 安装了jwt-auth。基本上扩展了Laravel的Auth模型,并添加了令牌授权。
  2. 添加简单的角色包到laravel。我用permiso。具有多个角色/用户和权限/角色。很简单。
  3. 将jStorage添加到前端。 (你可以使用AngularJS模块)。

因此,步骤是:

  1. 前端发送用户凭据(电子邮件和传递)。
  2. 服务器检查,jwt-auth为该用户创建一个令牌并将其发回。
  3. 前端将标记保存在浏览器存储中(此方法不需要csrf)。
  4. API的所有来电旁边用Authorization: Bearer头(或?token=...
+0

我要实现相同的格式,但我已经执行了用户角色和Entrust软件包的权限。 @neoroger是否可以通过Entrust实现jwt-auth并且所有的用户和角色权限都在运行?任何帮助深表感谢? thnx提前。 – Tarunn 2015-06-01 14:11:14

8

我喜欢@neoroger需要使用JSON网络令牌智威汤逊-auth的同样的方法制成。我使用Satellizer软件包将令牌存储在前端,并将其随每个请求一起发送到API。

我放在一起一对夫妇的教程介绍如何实现这两个包,如果你有兴趣:

https://scotch.io/tutorials/token-based-authentication-for-angularjs-and-laravel-apps

http://ryanchenkie.com/token-based-authentication-for-angularjs-and-laravel-apps/

+0

我刚读完你的2篇文章,它教会了我很多。喜欢关于如何使用JWT在Laravel和使用Satellizer for Angular的方法和解释。谢谢。 – Neel 2015-07-03 18:37:17

+1

太棒了!乐意效劳。 – cienki 2015-07-04 19:40:08

+1

:)我的确有一个关于如何使用'jwt.auth'中间件来限制所有控制器访问的问题。我已经在那篇文章的评论中加入了这一点。今天我正在玩这个教程演示,并且通过它了解了很多关于laravel和jwt认证的内容。目前为止我已阅读的最佳教程 - 毫无疑问! – Neel 2015-07-04 19:46:01