我正在与Laravel 8开发我的项目,我已经建立了这个形式验证令牌:
<div class="card-body">
<form action="{{ route('profile.2fa.phone') }}" method="POST">
@csrf
<div class="form-group">
<label for="token" class="col-form-label">Token</label>
<input type="text" class="form-control @error('token') is-invalid @enderror" name="token" placeholder="enter your token">
@error('token')
<span class="invalid-feedback">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
<div class="form-group">
<button class="btn btn-primary">Validate token</button>
</div>
</form>
</div>
然后在web.php
,我有这些路径:
Route::get('/settings/twofactor/phone' , [App\Http\Controllers\Admin\AdminSettingsController::class, 'getPhoneVerify']);
Route::post('/settings/twofactor/phone' , [App\Http\Controllers\Admin\AdminSettingsController::class, 'postPhoneVerify'])->name('profile.2fa.phone');
但现在,当我添加令牌并按下 Validate Token 按钮时,我收到以下错误:
Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException此路由不支持GET方法。支持的方法:开机自检
那么,这里出了什么问题?我该如何解决这个问题?
我真的很感激你们的任何想法或建议...
先谢谢你。
以下是所有路线:
Route::get('/', function () {
return view('welcome');
});
Route::prefix('admin')->middleware(['auth', 'verified'])->group(function() {
Route::get('/', function () {
return view('admin.index');
});
Route::resource('users' , App\Http\Controllers\Admin\AdminUserController::class)->middleware('admin');
Route::get('/settings', [App\Http\Controllers\Admin\AdminSettingsController::class, 'index'])->name('profile');
Route::post('/settings/twofactor' , [App\Http\Controllers\Admin\AdminSettingsController::class, 'postManageTwoFactor'])->name('profile.2fa.manage');
Route::get('/settings/twofactor/phone' , [App\Http\Controllers\Admin\AdminSettingsController::class, 'getPhoneVerify']);
Route::post('/settings/twofactor/phone' , [App\Http\Controllers\Admin\AdminSettingsController::class, 'postPhoneVerify'])->name('profile.2fa.phone');
Route::get('/auth/token' ,[App\Http\Controllers\Auth\AuthTokenController::class, 'getToken'])->name('2fa.token');
Route::post('/auth/token' ,[App\Http\Controllers\Auth\AuthTokenController::class, 'postToken']);
});
Auth::routes(['verify' => true]);
Route::get('/auth/google', [App\Http\Controllers\Auth\GoogleAuthController::class, 'redirect'])->name('auth.google');
Route::get('/auth/google/callback', [App\Http\Controllers\Auth\GoogleAuthController::class, 'result']);
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
2条答案
按热度按时间iih3973s1#
我想你的问题会解决,如果你尝试这一个,只是改变你的代码的下面一行与这一个。
<button type="submit" class="btn btn-primary">Validate token</button>
5ssjco0h2#
如果您有
/users/posts/
、/users/posts/create
和/users/posts/edit
等路由,则应在编写/users/posts
之前编写创建和编辑路由,以避免路由冲突问题。在路线
web.php
中,更改以下路线顺序: