【问题标题】:AngularJS + Laravel 5 AuthenticationAngularJS + Laravel 5 身份验证
【发布时间】:2015-04-25 00:02:58
【问题描述】:

在使用 angularJS 构建我的 SPA 时,我想在我的 angularJS 网站中实现用户身份验证。但是,我不知道从哪里开始以及最佳实践是什么。

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

所以我的问题是,如何使用 REST(或自定义 API url)实现身份验证服务来对用户进行身份验证,然后使用 angularJS 在页面上显示用户信息,同时还通过使用(对于例如)来自 Laravel 的 csrf 令牌?

提前致谢, 尼克·范德梅杰

【问题讨论】:

    标签: php angularjs authentication laravel


    【解决方案1】:

    我正在为后端制作一个 AngularJS 应用程序和一个使用 Laravel 5 制作的 API RESTful,我的身份验证方法是:

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

    所以步骤是:

    1. 前端发送用户凭据(电子邮件和通行证)。
    2. 服务器检查,jwt-auth 向该用户生成令牌并将其发回。
    3. 前端将令牌保存在浏览器存储中(这种方法不需要 csrf)。
    4. 接下来对 API 的所有调用都使用 Authorization: Bearer 标头(或使用 ?token=...

    【讨论】:

    • 我想实现同样的格式,但是我已经通过 Entrust 包实现了用户角色和权限。 @neoroger 是否可以在运行所有用户和角色权限的情况下使用 Entrust 实施 jwt-auth?任何帮助深表感谢?提前谢谢。
    【解决方案2】:

    我喜欢 @neoroger 使用带有 jwt-auth 的 JSON Web 令牌所采用的相同方法。我使用 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/

    【讨论】:

    • 我刚读完你的两篇文章,它教会了我很多。喜欢关于如何在 Laravel 之间使用 JWT 和使用 Satellizer for Angular 的方法和解释。谢谢。
    • 太棒了!很高兴能提供帮助。
    • :) 我确实有一个关于如何使用jwt.auth 中间件来限制对所有控制器的访问的问题。我已将其添加到那篇文章的 cmets 中。今天我正在玩教程演示,通过它我学到了很多关于 laravel 和 jwt 身份验证的知识。到目前为止我读过的最好的教程 - 毫无疑问!
    • 感谢@blackops_programmer!
    • 我正在使用本教程,但我无法登录。
    猜你喜欢
    • 1970-01-01
    • 2015-08-21
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 1970-01-01
    • 2015-06-08
    • 1970-01-01
    相关资源
    最近更新 更多