我认为我想要的是非常基本的,我只是找不到正确的语法,因为我仍在学习Laravel。
因此,我正在使用谷歌验证在我的网站上登录。这需要向我的后端发出必须处理的 post 请求,我已经将此逻辑放在控制器中。我的路线.php:
Route::post('google' , [
'as' => 'verify.index',
'uses' => 'verify@verifyIdToken'
]);
我的控制器(验证.php):
<?php
namespace App'Http'Controllers;
use App'Http'Controllers'Controller;
class verify extends Controller
{
public function verifyIdToken($token)
{
$token = $_POST['id'];
$email = $_POST['email'];
return $this->getAuth()->verifyIdToken($token);
echo $this->getAuth()->verifyIdToken($token);
return view('aviewII')->with(['verify' => json_encode(verifyIdToken($token)),'email'=> json_encode($email)]);
}
}
当然,由于控制器中的函数是如何编写的,我得到以下错误Missing argument 1 for App'Http'Controllers'verify::verifyIdToken()
我的问题是,我如何告诉控制器中的函数将$_POST['id']
作为$token
的参数?
像这样:
Route::post('google' , [
'as' => 'verify.index',
'uses' => 'verify@verifyIdToken ~with $_POST['id'] as $token'
]);
作为其他参考,我的实际发布请求如下所示:
$.post( "http://example.com/google", {email:profile.getEmail(),id:id_token} );
控制器方法:
public function verifyIdToken(Request $request)
{
// Not necessary but a better practice for ajax 'POST' responses.
if($request->ajax() && $request->isMethod('post'))
{
return $request::get('token');
}
}
路线:
Route::post('google', ['as' => 'some.alias', 'uses' => 'SomeController@verifyIdToken']);
您正在寻找 Laravel 的request
类。您应该在方法上键入提示类,然后允许大量选项实际获取数据。像这样:
use Illuminate'Http'Request;
public function verifyIdToken(Request $request)
{
$token = $request->input('id');
$email = $request->input('email');
return $this->getAuth()->verifyIdToken($token);
echo $this->getAuth()->verifyIdToken($token);
return view('aviewII')->with(['verify' => json_encode(verifyIdToken($token)),'email'=> json_encode($email)]);
}
关于它的文档有更多有用的信息。