如何解决登录问题后 Laravel 重定向 问题陈述:以下是目录结构文件和配置
问题陈述:
我正在尝试修改多重身份验证以使用多个模型、路由、防护和控制器来验证不同的用户。
用户被重定向到 teacher/home
而不是 v2/teacher/home
teacher/home
是较早的路线,而 v2/teacher/home
是新修改的路线。
以下是目录结构
- app/
- Http/
- Controllers/
- Teacher/
- LoginController.php
- RegisterController.php
- Student/
- LoginController.php
- RegisterController.php
- Middleware/
- RedirectIfTeacher.php
- RedirectIfStudent.php
- RedirectIfNotTeacher.php
- RedirectIfNotStudent.php
- Models/
- Teacher.php
- Student.php
文件和配置
我将在这里分享步骤和代码以找出问题所在:
- 我创建了必要的保护程序、提供程序和密码代理
- 我创建了自定义模型
- 我创建了自定义中间件
- 我创建了必要的路由和控制器
App\Http\Controllers\v2\Teacher\Auth\LoginController.php
use AuthenticatesUsers,LogsoutGuard {
LogsoutGuard::logout insteadof AuthenticatesUsers;
}
public $redirectTo = '/v2/teacher/home';
public function __construct()
{
$this->middleware('teacher.guest',['except' => 'logout']);
}
public function showLoginForm()
{
return view('v2.teacher.auth.login');
}
protected function guard()
{
return Auth::guard('teacher');
}
routes\web.php
Route::group(['prefix' => 'v2','as' => 'v2.'],function (){
Route::group(['prefix' => 'teacher','as' => 'teacher.'],function (){
Route::get('login','v2\Teacher\Auth\LoginController@showLoginForm')->name('login');
Route::post('login','v2\Teacher\Auth\LoginController@login')->name('login.post');
Route::group(['middleware' => 'auth:teacher'],function (){
Route::get('home','v2\Teacher\HomeController@index')->name('home');
app\Http\Kernel.php
protected $routeMiddleware = [
'check' => \App\Http\Middleware\RedirectIfNotCheck::class,'check.guest' => \App\Http\Middleware\RedirectIfCheck::class,'teacher' => \App\Http\Middleware\RedirectIfTeacher::class,'teacher.guest' => \App\Http\Middleware\RedirectIfNotTeacher::class,'student' => \App\Http\Middleware\RedirectIfStudent::class,'student.guest' => \App\Http\Middleware\RedirectIfNotStudent::class,
App\Http\Middleware\RedirectIfTeacher.php
public function handle($request,Closure $next,$guard = 'teacher')
{
if (Auth::guard($guard)->check()) {
return redirect('v2/teacher/home');
}
return $next($request);
}
Auth::guard($guard)->check()
返回 false
config\auth.php
'guards' => [
'teacher' => [
'driver' => 'session','provider' => 'teachers',],'student' => [
'driver' => 'session','provider' => 'students','providers' => [
'teacher' => [
'driver' => 'eloquent','model' => App\Models\Teacher::class,'student' => [
'driver' => 'eloquent','model' => App\Models\Student::class,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。