Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 拉雷维尔:什么是;记住“U标记”;在;“用户”;数据库表?_Laravel_Security_Authentication_Token - Fatal编程技术网

Laravel 拉雷维尔:什么是;记住“U标记”;在;“用户”;数据库表?

Laravel 拉雷维尔:什么是;记住“U标记”;在;“用户”;数据库表?,laravel,security,authentication,token,Laravel,Security,Authentication,Token,使用用户表中的记住\u令牌验证用户进入应用程序是否安全 这个代币的用途是什么?目前,我正在表单中使用它来检查用户是否登录-如果令牌不存在,我将显示登录屏幕。每次用户注销时,都会重新生成此令牌。否。它不应用于身份验证。框架使用它来帮助防止记住我cookie劫持。该值在登录和注销时刷新。如果一个cookie被恶意的人劫持,注销会使被劫持的cookie变得无用,因为它不再匹配 请参阅本文档: 为了让Auth::logout()正常工作,我必须将记住\u标记添加到我的用户表迁移中 将记住\u令牌添加到我

使用用户表中的
记住\u令牌
验证用户进入应用程序是否安全


这个代币的用途是什么?目前,我正在表单中使用它来检查用户是否登录-如果令牌不存在,我将显示登录屏幕。每次用户注销时,都会重新生成此令牌。

否。它不应用于身份验证。框架使用它来帮助防止
记住我
cookie劫持。该值在登录和注销时刷新。如果一个cookie被恶意的人劫持,注销会使被劫持的cookie变得无用,因为它不再匹配

请参阅本文档:


为了让
Auth::logout()
正常工作,我必须将
记住\u标记添加到我的用户表迁移中

记住\u令牌
添加到我的迁移中

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

class CreateUsersTable extends Migration {

    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        //
        Schema::create('users', function(Blueprint $table)
        {
            $table->increments('id');
            $table->string('lname', 32);
            $table->string('fname', 32);
            $table->string('username', 32);
            $table->string('email', 320);
            $table->string('remember_token', 100);
            $table->string('password', 64);

            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        //
        Schema::drop('users');

    }

}
Laravel在隐藏输入中提供一个令牌,无论您是否登录,只要提交表单,它都会自动添加并验证该令牌。如果您使用的是他们的表单生成器,那么您甚至不需要检查它就可以实现这一点


您应该检查用户是否使用
Auth
facade登录提交。

即使这是一个老问题,如果您不需要令牌,我也希望提供一个选项不使用令牌(例如,您的站点上没有记住我的选项)

您只需阻止Auth::logout()对其进行设置,而无需向users表中添加伪列

只需将其添加到您的用户模型中(从Laravel 5.6开始使用):


这将在保存模型之前删除“记住令牌”列,从而防止由于不存在列而引发错误。

OAuth仅用于安全地建立跨源身份验证。祝你好运,当心,不要掉以轻心,因为你可能会向公众开放你的整个数据库,而没有意识到这一点!我花了好几天的时间阅读和沙箱宠物项目,但我仍然是一个傻瓜!:)1.使用API(OAuth使用的数据库)注册用户。2.用户登录到应用程序,应用程序发送令牌请求并获取令牌,因为用户是有效的。3.用户可以使用令牌进行请求验证。简言之:)我总是使用postman REST客户端进行测试。我创建了一个聊天室,以便在正确的位置继续对话。我只是想指出一点小小的变化-根据[Laravel升级指南][记住标记应该是100而不是64-因此
$table->string('membere_token',100);
和->nullable()“您应该验证您的用户(或等效)表中是否包含一个100个字符的可为null的字符串记住标记列”这也是5.2版的完整帮助
public function save(array $options = array()) {
    if(isset($this->remember_token))
        unset($this->remember_token);

    return parent::save($options);
}