내 맞춤 요청 클래스를 내 메소드 중 하나에서 호출 할 수없는 이유를 파악하려고합니다.맞춤 요청 클래스가 존재하지 않지만 실제로 있습니까?
나는 내 수업을 php artisan make:request ValidateUserSecretRequest
으로 만들었습니다.
이로 인해 내 사용자 지정 요청 파일이 예상대로 Http/Requests
폴더에 만들어졌습니다.
그러나 내 Auth\LoginController.php
내에서 호출, 나는 Class App\Http\Controllers\Auth\ValidateUserSecretRequest does not exist
을받습니다. 불필요한 방법 제거와 여기
namespace App\Http\Controllers\Auth;
use Cache;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Auth;
use Illuminate\Contracts\Auth\Authenticatable;
use Illuminate\Foundation\Auth\AuthenticatesUsers;
use App\Http\Requests\ValidateSecretUserRequest;
use App\Http\Controllers\Controller;
class LoginController extends Controller
{
use AuthenticatesUsers;
public function __construct()
{
$this->middleware('guest')->except('logout');
}
public function postValidateToken(ValidateUserSecretRequest $request)
{
// get user id and create cache key
$userId = $request->session()->pull('2fa:user:id');
$key = $userId . ':' . $request->totp;
// use cache to store token to blacklist
Cache::add($key, true, 4);
// login and redirect user
Auth::loginUsingId($userId);
return redirect()->intended($this->redirectTo);
}
그리고 내 사용자 지정 요청 클래스 : 나는 시도했다
namespace App\Http\Requests;
use Cache;
use Crypt;
use Google2FA;
use App\User;
use App\Http\Requests\Request;
use Illuminate\Validation\Factory as ValidatonFactory;
use Illuminate\Foundation\Http\FormRequest;
class ValidateUserSecretRequest extends FormRequest
{
/**
*
* @var \App\User
*/
private $user;
/**
* Create a new FormRequest instance.
*
* @param \Illuminate\Validation\Factory $factory
* @return void
*/
public function __construct(ValidatonFactory $factory)
{
$factory->extend(
'valid_token',
function ($attribute, $value, $parameters, $validator) {
$secret = Crypt::decrypt($this->user->google2fa_secret);
return Google2FA::verifyKey($secret, $value);
},
'Not a valid token'
);
$factory->extend(
'used_token',
function ($attribute, $value, $parameters, $validator) {
$key = $this->user->id . ':' . $value;
return !Cache::has($key);
},
'Cannot reuse token'
);
}
/**
* Determine if the user is authorized to make this request.
*
* @return bool
*/
public function authorize()
{
try {
$this->user = User::findOrFail(
session('2fa:user:id')
);
} catch (Exception $exc) {
return false;
}
return true;
}
/**
* Get the validation rules that apply to the request.
*
* @return array
*/
public function rules()
{
return [
'totp' => 'bail|required|digits:6|valid_token|used_token',
];
}
}
:
- 작곡가 덤프 - 자동로드 을
- 작곡가 업데이트
- 긁어 내 머리를 여러 번 다른 이름으로 장인과 함께 사용자 지정 요청을 다시
- , 동일한 문제가
는 도대체 여기 무슨 일이야?
나는 오타가 있다고 생각합니다. 귀하의 컨트롤러에서는'App \ Http \ Requests \ ValidateSecretUserRequest; '라고 쓰여졌습니다. 다른 곳에서는'ValidateUserSecretRequest; –