【发布时间】:2018-05-10 01:07:54
【问题描述】:
我的 laravel 版本 5.4.36 PHP版本:7.0.10 wamp 3
当我登录 auth::check() return 1 但在我重定向到其他视图或控制器之后 auth::check() return null 我用 lavavel 5.5 创建了新项目但没有解决如何解决我的问题? 我该怎么办?
用户.php
<?php
namespace App;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;
class User extends Authenticatable
{
use Notifiable;
/**
* The attributes that are mass assignable.
*
* @var array
*/
protected $fillable = [
'ID','Email','first_name','Last_name' ,'username', 'password','typeofuser',
];
/**
* The attributes that should be hidden for arrays.
*
* @var array
*/
protected $hidden = [
'password',
];
}
kernel.php
class Kernel extends HttpKernel
{
/**
* The application's global HTTP middleware stack.
*
* These middleware are run during every request to your application.
*
* @var array
*/
protected $middleware = [
\Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class,
\Illuminate\Foundation\Http\Middleware\ValidatePostSize::class,
\App\Http\Middleware\TrimStrings::class,
\Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull::class,
\Illuminate\Session\Middleware\StartSession::class,
];
/**
* The application's route middleware groups.
*
* @var array
*/
protected $middlewareGroups = [
'web' => [
\App\Http\Middleware\EncryptCookies::class,
\Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class,
\Illuminate\Session\Middleware\StartSession::class,
// \Illuminate\Session\Middleware\AuthenticateSession::class,
\Illuminate\View\Middleware\ShareErrorsFromSession::class,
\App\Http\Middleware\VerifyCsrfToken::class,
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'api' => [
'throttle:60,1',
'bindings',
],
];
/**
* The application's route middleware.
*
* These middleware may be assigned to groups or used individually.
*
* @var array
*/
protected $routeMiddleware = [
'auth' => \Illuminate\Auth\Middleware\Authenticate::class,
'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class,
'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class,
'can' => \Illuminate\Auth\Middleware\Authorize::class,
'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class,
'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class,
];
}
web.php 的一部分
Route::get('/Admin', function () {
return view('Adminlogin');
});
Route::group(['middleware' => ['web']], function () {
Route::get('/StartExamInfo/{id}', 'ExamController@Info');
Route::post('/Exam', 'ExamController@Start');
Route::post('/result','resultController@Add');
});
登录控制器.php
namespace App\Http\Controllers;
use App\admin;
use App\students;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Support\Facades\hash;
use Validator;
class LoginController extends Controller
{
public function Login(Request $request)
{
if (Auth::guard('web')->attempt(['username' => $request->username , 'password' => $request->password , 'typeofuser' => 1 ]))
{
$admin = new admin();
$admin->username = $request->username;
$admin->getuser();
$user = [$admin->ID,$admin->firstname,$admin->lastname,$admin->email,$admin->phonenumber,$admin->pic,$admin->expirtime];
return view('Admin_home',['user'=>$user]);
}
if (Auth::guard('web')->attempt(['username' => $request->username , 'password' => $request->password , 'typeofuser' => 2 ]))
{
$std = new students();
$std->username = $request->username;
$std->getuser();
$user = [$std->ID,$std->firstname,$std->lastname,$std->email,$std->pic,$std->expirtime];
return view('Student_home',['user'=>$user]);
}
else
return view('AdminLogin');
//$v = validator::make($request->all());
//
//$admin->auth($request->username,$request->password);
}
public function logout()
{
Auth::logout();
return view('AdminLogin');
}
}
【问题讨论】:
-
这到底是什么烂摊子
-
是的,这个问题是真实存在的
-
没人能回答我的问题
-
@mh480 嗨到手
标签: php laravel session authentication