[英]Laravel Authentication not working multiple controllers
大家好,我是Laravel的新手。 我面臨有關身份驗證的問題。
它的作用是,每當我嘗試對用戶進行身份驗證並將其重定向到特定控制器的視圖時,它都可以正常工作,但是當我嘗試打開其他視圖時,用戶身份驗證將不起作用(用戶注銷)。 基本上,問題是我有兩個控制器,因此,如果我從身份驗證重定向到其中任何一個,另一個則沒有用戶。
我希望我已經清楚地說明了我的問題
路線清單:結果 路線清單
主頁路由是我正在使用的路由...到目前為止,其他路由只是虛擬的
這是我的認證課程
<?php
namespace App\Http\Middleware;
use Closure;
use Illuminate\Contracts\Auth\Guard;
class Authenticate
{
/**
* The Guard implementation.
*
* @var Guard
*/
protected $auth;
public function __construct(Guard $auth)
{
$this->auth = $auth;
}
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if ($this->auth->guest()) {
if ($request->ajax()) {
return response('Unauthorized.', 401);
} else {
return redirect()->guest('/');
}
}
return $next($request);
}
}
這是索引控制器
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class IndexPageController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$user = Auth::user()->firstOrFail();
return view('index')
->with(compact('user'));
//
}
這是UserProfileController
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Auth;
class UserProfileController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$user = Auth::user()->firstOrFail();
return view('profile.index')
->with(compact('user'));
//
}
路線
<?php
use Illuminate\Support\Facades\Mail;
/*
|--------------------------------------------------------------------------
| Application Routes
|--------------------------------------------------------------------------
|
| Here is where you can register all of the routes for an application.
| It's a breeze. Simply tell Laravel the URIs it should respond to
| and give it the controller to call when that URI is requested.
|
*/
/*Welcome Page routes */
Route::get('/' , function(){
return view('auth.login');
});
Route::get('user/logout' , function(){
Auth::logout();
return redirect('/');
});
Route::post('user/do-login' , 'Auth\AuthController@doLogin');
Route::get('user/create' , 'Auth\AuthController@createUser');
/*---------------------------*/
/*Welcome Page AJAX routes*/
Route::get('/checkAvailibility' , 'WelcomePageController@usercheck');
/*---------------------------*/
/*Images Routes*/
Route::post('image/do-upload' ,'GalleryController@doImageUpload');
Route::post('gallery/save' , 'GalleryController@saveGallery');
Route::get('gallery/list' , 'GalleryController@viewGalleryList');
Route::get('gallery/view/{id}' , 'GalleryController@viewGalleryPics');
Route::get('gallery/delete/{id}' , 'GalleryController@deleteGallery');
/*---------------------------*/
/*Event Routes */
Route::post('create/Image-Upload' , 'CreateEventFormController@ImageUpload');
Route::post('create' , 'CreateEventFormController@store');
Route::get('create/event-image' , 'CreateEventFormController@createEventFormImage');
Route::post('create/event-image' , 'CreateEventFormController@UploadEventImg');
Route::get('create' , 'CreateEventFormController@create');
Route::get('event/{id}' , [ 'as' => 'event_list' , 'uses' => 'CreateEventFormController@show']);
/*---------------------------*/
/*-------------- Main Page Routes -------------------*/
Route::get('event/{id}' , [ 'as' => 'event_list' , 'uses' => 'CreateEventFormController@show']);
Route::get('index' ,[ 'as' => 'index' , 'uses' => 'IndexPageController@index']);
/*-------------- END -------------------*/
/*-------------- Main Page Routes -------------------*/
Route::get('profile' , 'UserProfileController@index');
Route::get('profile/{id}' , 'IndexPageController@show');
/*-------------- END -------------------*/
Route::get('/email', function () {
$data = array(
'name' => "Learning Laravel",
);
Mail::send('emails.test', $data, function ($message) {
$message->from('yourEmail@domain.com', 'Learning Laravel');
$message->to('yourEmail@domain.com')->subject('Learning Laravel test email');
});
return "Your email has been sent successfully";
});
AuthController.php
可能存在某些AuthController.php
。
您是否有機會使用Auth::attempt()
進行身份驗證? 如果是這樣,我過去曾遇到問題,在身份驗證后回顯某些東西會引起問題。
另一種可能性是存儲會話時出現問題。 它可能就像沒有保存/寫入會話一樣簡單。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.