在我的Laravel项目中,我正在使用多重身份验证。但是从我新创建的用户agency
开始,注销功能不起作用
以下是我的代码以供注销
<li>
<a href="{{ url('/agency/logout') }}"
onclick="event.preventDefault();
document.getElementById('logout-form').submit();">
Logout
</a>
<form id="logout-form" action="{{ url('/agency/logout') }}" method="POST" style="display: none;">
{{ csrf_field() }}
</form>
</li>
以下是路线(web.php)中的代码
Route::group(['prefix' => 'agency'], function () {
Route::get('/', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('agency_login');
Route::get('/login', 'Agency\AgencyAuth\LoginController@showLoginForm')->name('login');
Route::post('/login', 'Agency\AgencyAuth\LoginController@login');
Route::post('/logout', 'Agency\AgencyAuth\LoginController@logout')->name('logout');
// Route::get('/agencie_home', 'Agency\HomeController@index')->name('agencie_home');
});
以下是LoginController.php中的代码
<?php
namespace App\Http\Controllers\Agency\AgencyAuth;
use App\Http\Controllers\Controller;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use Illuminate\Support\Facades\Auth;
use Hesto\MultiAuth\Traits\LogsoutGuard;
use JsValidator;
class LoginController extends Controller
{
/*
|--------------------------------------------------------------------------
| Login Controller
|--------------------------------------------------------------------------
|
| This controller handles authenticating users for the application and
| redirecting them to your home screen. The controller uses a trait
| to conveniently provide its functionality to your applications.
|
*/
use AuthenticatesUsers, LogsoutGuard {
LogsoutGuard::logout insteadof AuthenticatesUsers;
}
protected $validationRules = [
'email' => 'required|email',
'password' => 'required'
];
/**
* Where to redirect users after login / registration.
*
* @var string
*/
public $redirectTo = '/agency/dashboard';
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware('agencie.guest', ['except' => 'logout']);
}
/**
* Show the application's login form.
*
* @return \Illuminate\Http\Response
*/
public function showLoginForm()
{
$validator = JsValidator::make($this->validationRules,[],[],'#loginform');
return view('agency.auth.login')->with('validator', $validator);
}
/**
* Get the guard to be used during authentication.
*
* @return \Illuminate\Contracts\Auth\StatefulGuard
*/
protected function guard()
{
return Auth::guard('agencie');
}
public function logout(Request $request) {
Auth::logout();
return '/agency';
}
}
当我尝试注销时,它返回以下错误
Class App\Http\Controllers\Agency\AgencyAuth\Request does not exist
如何实现注销功能?
答案 0 :(得分:0)
您没有使用所需的名称空间,请尝试在LoginController中使用以下内容:
int
由于脚本试图从当前名称空间加载Request类而导致错误:
getMediaDuration(path): Promise<any> {
return new Promise((resolve, reject) => {
let audio: MediaObject = this.media.create(path);
audio.seekTo(1);
audio.onStatusUpdate.subscribe(status => {
setTimeout(()=>{
resolve(audio.getDuration());
audio.release();
}, 500);
});
});
}