我正在使用带有Angular 2的Laravel,我遇到了一个关于内置于Laravel的登录系统的问题。我可以很好地登录,但是如果用户输入了错误的凭据,它会重定向回上一页,但这不符合我想要的方式。我想为重定向定义自定义路径。我已经尝试使用$ loginPath并将其更改为自定义路径,但该解决方案不起作用。
这是供应商文件“vendor \ Illuminate \ Foundation \ Auth \ AuthenticateUsers.php”中的默认功能
protected function sendFailedLoginResponse(Request $request)
{
return redirect()->back()
->withInput($request->only($this->username(), 'remember'))
->withErrors([
$this->username() => Lang::get('auth.failed'),
]);
}
这是我的登录控制器 “\应用\ HTTP \控制器\验证\ LoginController.php”
<?php
namespace App\Http\Controllers\Auth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
class LoginController extends Controller
{
use AuthenticatesUsers;
/**
* Where to redirect users after login / registration.
*
* @var string
*/
protected $redirectTo = '/api/loginCheck';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('guest', ['except' => 'logout']);
}
}
我希望能够在提供不正确的登录凭据时定义自己的路径,以指向用户应该重定向的位置。如果有人能帮助我,那将非常感激。
答案 0 :(得分:3)
由于您使用use AuthenticatesUsers;
你可以通过在“\ App \ Http \ Controllers \ Auth \ LoginController.php”中放入相同的函数来覆盖默认的sendFailedLoginResponse()
函数
protected function sendFailedLoginResponse()
{
return redirect('/your/url/here');
}
希望这有帮助