我是Laravel的新手,我正在开发一个Laravel身份验证系统,虽然注册可以工作,但登录不做任何事情。
UserController.php
class UserController extends Controller
{
public function postSignUp(Request $request)
{
$email = $request['email'];
$first_name = $request['first_name'];
$password = bcrypt($request['password']);
$user = new User;
$user->email = $request->email;
$user->first_name = $request->first_name;
$user->password = bcrypt($request->password);
$user->save();
Auth::login($user);
return redirect()->route('hotelier.index')->with('alert-success','Data has been saved successfully');
}
public function postSignIn(Request $request)
{
if(Auth::attempt(['email' => $request['email'], 'password' => $request['password']])){
return redirect()->route('hotelier.index');
}
return redirect()->back();
}
}
字符串
路由(web.php)
Route::group(['middleware' => ['web']], function (){
Route::get('/', function () {
return view('welcome');
});
Route::resource('hotelier','HotelierController');
Route::post('/signup', [
'uses'=> 'UserController@postSignUp',
'as' =>'signup'
]);
Route::post('/signin', [
'uses'=> 'UserController@postSignIn',
'as' =>'signin'
]);
} );
Auth::routes();
Route::get('/home', 'HomeController@index')->name('home');
型
请让我知道如何登录
谢谢
5条答案
按热度按时间pbpqsu0x1#
你可以使用artisan命令php artisan make:auth。这将创建一些东西。它将在Controllers文件夹和view文件夹中创建一个auth文件夹。假设你使用的是laravel 5.4,它还将添加到你的web.php路由文件中。在你的控制器/auth目录中,你会发现你的LoginController和RegisterController。它应该有你需要验证的所有东西。你需要确保你的User模型上有一个email或username属性。你还需要有一个password属性。从那里你可能想根据你的应用程序做一些定制。
下面是一个LoginController示例:
字符串
寄存器控制器:
型
routes/web.php:
型
为什么没有用户模型:
型
n9vozmp42#
可能已经太晚了,但可能会帮助其他人。你有没有注意到
User
模型中的protected $fillable = [...]
扩展了Illuminate\Foundation\Auth\User as Authenticatable
?确保你为用户模型设置了所有在protected $fillable = [...]
中定义的属性,然后尝试使用Auth::login($user);
登录我的用户模型看起来像命名空间App\Models;字符串
fnatzsnv3#
在登录控制器中使用此选项
字符串
q5iwbnjs4#
我知道这是一个迟来的答案,但我刚刚解决了这个问题,使用
Auth::login()
而不是使用auth()->login()
。我认为这应该是相同的,但我不知道它适用于
Auth::login()
而不是auth()->login()
的主要原因。2q5ifsrm5#
Laravel使用用户示例的一个属性来在登录用户发出请求时从数据库中检索用户详细信息。此属性是Authenticatable对象的getAuthIdentifier()方法返回的值。如果您使用的是\App\Models\User类,则该方法返回“id”。因此,请确保在给予Auth::login()的用户示例上设置id属性。
Illuminate\Auth\SessionGuard.php:
字符串