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);
}