【问题标题】:Laravel 4 Auth With TokenLaravel 4 使用令牌进行身份验证
【发布时间】:2014-09-26 20:24:42
【问题描述】:

我问了一个使用 Laravel 4 构建项目的正确方法的问题。我目前正在制作一个 API(以支持移动应用程序)和一个 Web 应用程序作为后端。

1) 对此的最佳做法是什么?两次安装(网络应用程序将通过 api 获取数据(我做了什么)?使用一个带有命名空间的 Laravel 安装?一个带有文件夹的 Laravel 安装?

2) 我为 Laravel 制作了一个自定义的身份验证驱动程序并让它工作。在登录返回中,我返回一个 API 令牌,后续调用需要该令牌。我知道在 Laravel 中,只保存了用户的 ID,当 Auth::check() 通过时,如何使 api 令牌保存得很好?其中一些东西让我怀疑在这种与 db 设置分离的情况下使用 Laravel 是否不好,因为它使 Eloquent 不是一个选项。

【问题讨论】:

    标签: php authentication laravel-4


    【解决方案1】:

    我有 2 个单独的安装 - 一个用于 API,一个用于 Web(使用此 API)。
    不要为另一个安装的 +-50MB 额外费用而烦恼 - 将它们分开!

    授权 在每个请求中,我都在客户端设置了“Access-Token”标头。然后在 API 端使用Header::get('Access-Token') 读取此令牌。然后我只为这个唯一的请求存储经过身份验证的用户 - API 应该是无状态的(会话中没有用户数据,每个请求都需要身份验证)。

    除其他外,我还检查 AcceptContent-Type 标头 - 我的 API 仅接受 application/jsonapplication/json 格式的运动响应。

    【讨论】:

    • 您能解释一下“将它们分开”是什么意思吗?
    • 另外,您如何在网络应用程序上记住用户的身份验证令牌?我看到它没有存储在 Auth::user() 对象中..
    • 分开 - 两个安装,而不是一个用于 API/APP 的 vendor 文件夹。在网络应用程序上,我将访问令牌保存为 cookie/会话参数 - 在客户端,而不是服务器端
    • 所以你说我同意将它们分开,但是你为什么说不用担心另一个安装的额外费用呢?你的意思是不用担心吗?
    • 我提到“不要为需要额外的磁盘空间而烦恼”
    猜你喜欢
    • 2014-06-08
    • 1970-01-01
    • 2021-01-07
    • 1970-01-01
    • 1970-01-01
    • 2018-11-22
    • 1970-01-01
    • 2014-01-01
    • 1970-01-01
    相关资源
    最近更新 更多