【问题标题】:Is using Laravel api_token authentication not like storing password in plain text?使用 Laravel api_token 身份验证不像以纯文本形式存储密码吗?
【发布时间】:2017-02-15 14:30:44
【问题描述】:

我想使用令牌身份验证来验证我的 RESTful API。提供的两个关键选项是https://github.com/tymondesigns/jwt-auth 和 Laravel 自己的内置令牌身份验证。

我无法让jwt-auth 为我工作,即使它看起来最有希望,所以我决定检查 Laravel 的实现。

这很简单。在用户数据库中创建一个额外的字段 api_token,生成一个随机字符串并将其存储在用户记录中的纯文本中,然后用户发送的任何请求都应附加 api_token,您应通过检查其在数据库中的存在来进行身份验证。只是。

这不就像以纯文本形式存储密码一样,因为碰巧有权访问数据库的任何人都与经过身份验证的人一样好?那里没有直接的安全风险吗?有人帮我理解这个。

另外,如何处理诸如使令牌无效、给令牌一个有效期等事情?

【问题讨论】:

    标签: authentication laravel-5


    【解决方案1】:

    对于类似情况,我没有使用任何外部插件,而 Laravel 已经发布了一个名为 Lumen 的项目,该项目最适合 Restfull Web 服务,

    我将加密的哈希字符串作为 api_token 存储在用户表中, 在我的移动应用程序中,我让用户第一次通过用户名密码进行身份验证,然后我将解密的令牌存储在移动设备中以维护用户状态以供后续 api 调用,关键是我将解密的用户令牌存储在移动设备中以及何时我在服务器中收到令牌,我使用我以前使用过的相同加密功能进行比较以匹配它们,...

    在这种情况下,您必须提出自己的加密算法,因为您需要使用相同的算法来在客户端中进行 decry-pt, 或者一个简单的方法是在 api_token 字段中复制用户密码哈希字符串并将用户密码存储在客户端, 但是您必须确保客户端应用程序的安全性,

    如果你考虑原生 android,我会在安全的私有模式下使用 sharedpreference....

      if(Hash::check($password,$user->password)){
                    $response['success'] = 1;
                    $response['message'] = 'You have Connected to Server Successfully';
                    $response['api_token'] = $user->api_token;
                }else{
                    $response['success'] = 0;
                    $response['message'] = 'Authentication Unsuccessful';
                    $response['api_token'] = '';
                }
    

    【讨论】:

    • 所以你所做的和 Laravel 提供的区别在于你在将 api_token 存储到数据库之前对其进行加密/散列?有没有一种方法可以自定义 Laravel API 令牌身份验证,以便您将提交的 api_token 与数据库中的哈希值进行比较?或者这就是我必须创建自定义身份验证服务的地方?
    • 检查我的答案,我用示例代码更新了它,所以我建议你有两个选择,1. 想出你自己的算法来加密/解密 api_token。 2. 将用户的哈希密码也存储在 api_token 字段中,从客户端应用程序中,您可以让用户通过用户名、密码第一次进行身份验证,然后存储真实密码并每次将其传递给服务器,并比较它为在示例代码中
    • 我再次建议你,你必须确保客户端应用程序 100% 安全地存储用户的普通凭据,否则就像你会为你的应用程序打开一个安全整体,
    • 好的,让我看看这种方法并评估它的用例。
    猜你喜欢
    • 2011-08-10
    • 2012-08-22
    • 1970-01-01
    • 2016-07-26
    • 1970-01-01
    • 1970-01-01
    • 2013-10-18
    • 2014-02-04
    • 2011-12-06
    相关资源
    最近更新 更多