首页 文章

Laravel加载登录视图而不是重定向到/ login

提问于
浏览
1

我有一个Laravel应用程序,其中包含以下路径:

由于http://site-name/需要授权用户,因此需要进行登录检查 . 我为此写了一个以下的路线

Route::get('/', 'SiteController@index');

SiteController的位置,

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SiteController extends Controller
{
    /**
     * Create a new controller instance.
     *
     * @return void
     */
    public function __construct()
    {
        $this->middleware('auth');
    }

    /**
     * Show the application dashboard.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        return view('play');
    }
}

__construct() 之上会将用户重定向到http://site-name/login视图 .

现在,棘手的部分开始了 . 我需要修改我的laravel应用程序,以便登录时,它会向http://site-name/上的未授权用户显示登录视图,而不是重定向到http://site-name/login以进行登录 .

2 回答

  • 0

    如果要更改未经授权的用户重定向路径 . 转到:

    app \ Exceptions \ Handler.php

    unauthenticated 方法中,您可以在 http://site-name/ 而不是 http://site-name/login 更改重定向路径 .

    protected function unauthenticated($request, AuthenticationException $exception)
        {
            if ($request->expectsJson()) {
                return response()->json(['error' => 'Unauthenticated.'], 401);
            }
    
            return redirect()->guest('/login');  // Here you should be specify your unauthorized redirect url path.
        }
    
  • 1

    正如您在评论部分中提到的,这是一种不重定向的方法,而只是渲染模板!

    但我想你想留在同一页面并显示错误或其他什么?看看这个链接:Laracasts Ajax call login Laravel

    如果您渲染视图,请确保它是一个Web路由而不是api路由 . 如果它是api路线,请务必停用限制

    app / Http / Kernel.php

    在unauthenticated()上呈现模板的示例:

    app \ Exceptions \ Handler.php

    /**
     * @param                         $request
     * @param AuthenticationException $exception
     *
     * @return \Illuminate\Contracts\View\View|\Illuminate\Http\JsonResponse
     */
    protected function unauthenticated($request, AuthenticationException $exception)
    {
        if ($request->expectsJson()) {
            return response()->json(['error' => 'Unauthenticated.'], 401);
        }
    
        return \View::make('login',['title' => 'unauthenticated']);
    }
    

相关问题