我是laravel的新手,我被困在身份验证中。我不知道这个代码有什么问题,有人能帮我吗?我在这里的Stackoverflow上读了很多答案,到目前为止没有一个是有效的。
我做了一个简单的代码只是为了测试Auth::attempt()
。我所遵循的大多数教程都使用了这个简单的代码。在Auth工作之前,我需要配置其他东西吗?为什么这么复杂?
注:我还测试了它是否生成正确的哈希值,它似乎很好。
控制器:
public function index()
{
$user = new User;
$user->email = 'q21@q.com';
$user->password = Hash::make('123456');
$user->save();
$userData = array('email' => 'q21@q.com', 'password' => '123456');
var_dump(Auth::attempt($userData));
}
模型:
<?php namespace App;
use Illuminate'Auth'Authenticatable;
use Illuminate'Database'Eloquent'Model;
use Illuminate'Auth'Passwords'CanResetPassword;
use Illuminate'Contracts'Auth'Authenticatable as AuthenticatableContract;
use Illuminate'Contracts'Auth'CanResetPassword as CanResetPasswordContract;
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {
use Authenticatable, CanResetPassword;
protected $table = 'users';
protected $fillable = ['email', 'password'];
protected $hidden = ['password', 'remember_token'];
}
更新……下面是我的用户表迁移脚本。
我有一个单独的登录管理员和用户,也许这是导致问题。它可能没有查看正确的表,因为管理权限在工作。如何显示Auth中使用的SQL ?
用户表迁移脚本
Schema::create('users', function(Blueprint $table)
{
$table->increments('id');
$table->string('firstname');
$table->string('lastname');
$table->string('email')->unique();
$table->string('password');
$table->timestamps();
});
路线:
Route::group(['prefix' => 'api'], function()
{
Route::post('user/login','UserController@login');
Route::group(['middleware' => ['jwt.auth','jwt.refresh']], function()
{
Route::resource('user','UserController');
});
});
Route::group(['prefix' => 'admin'], function()
{
Route::get('/', 'AdminController@index');
Route::get('login', 'AdminController@postlogin');
Route::post('login', 'AdminController@postlogin');
Route::get('logout', function(){
Auth::logout();
return Redirect::to('admin');
});
Route::group(['middleware' => ['auth']], function()
{
Route::resource('messages', 'MessageController');
});
});
我怀疑你没有正确设置数据库。
为了使Eloquent ORM工作,它必须有一个数据库。相关的配置应该在config/database.php,然后你应该检查这样的表是否存在。另一方面,如果您不希望连接到config/database.php
中的默认数据库,则可能没有在Eloquent中正确设置连接。次要的一点,也要确保你的config/auth.php做得正确。Auth.php应该与默认设置下的代码一起工作。