Laravel 5.6.28:身份验证中间件重定向到登录(未调用句柄)



laravel中的身份验证中间件使用我的自定义防护对用户进行身份验证,但每次我使用该中间件调用路由时,我都会收到以下错误:

未定义路由 [登录名]。

现在,我只是想确保中间件被调用。这是我到目前为止所做的:

public function handle($request, Closure $next, $guard = null)
{ 
return "hi";
if (Auth::guard('api')->guest()) {
if ($request->ajax() || $request->wantsJson()) {
return response('Unauthorized.', 401);
}
return redirect()->guest('hi/login');
}
return $next($request);
}

以上是用于身份验证的句柄方法.php。 这是我的守卫代码

'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'access_token',
'provider' => 'users',
],
],
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => AppUser::class,
],
],

路线: 这是我在其中有一个实现身份验证的子组的路由组 中间件Route::group(['prefix' => 'app'], function() use ($router) { }

这是我在Route::get('/subscribedcompanies','PromotionController@getFavoriteCompanies');上测试中间件的路线

我想补充的另一件事是我正在尝试根据数据库中的access_token进行身份验证。 我更改了登录控制器中的身份验证和凭据功能,如下所示:

protected function credentials(Request $request)
{
return array_merge($request->header('authorization'));
}
public function authenticate(Request $request)
{
$credentials = $request->header('authorization');
if (Auth::attempt($credentials)) {
// Authentication passed...
return redirect()->intended('/');
}
}

只需将您的登录路由命名为loginRoute::post('/login', 'LoginController@index')->name('login');

最新更新