新しいユーザーを登録したい:クライアントIDとクライアントシークレットを使用してAPIを呼び出し、すべてが正常であればユーザーを保存する。そうでない場合、私はエラーメッセージでリダイレクトします。laravel apiへの呼び出しによって有効なアクセストークンが返された場合
バリデーター内の登録ルートにリダイレクトしようとすると、このエラーが発生します。という文字列のメンバー関数validate()を呼び出します。
protected function validator(array $data)
{
$messages = [
'client_secret.size' => 'Secret Id must be exactly 36 characters',
];
$client_id = $data['client_id'];
$client_secret = $data['client_secret'];
$access = $this->getAccessToken($client_id, $client_secret);
if($access == false){
return route('register');
}
return Validator::make($data, [
'name' => 'required|string|max:255',
'email' => 'required|string|email|max:255|unique:users',
'password' => 'required|string|min:6|confirmed',
'role' => 'required|string',
'country' => 'required|string',
'client_id' => 'required|string',
'client_secret' => 'required|string|size:36'
], $messages);
}
これは誤った実装です。バリデータ関数は、文字列が返されたアクセストークンの取得に失敗した場合に 'route( 'register')'を返します。しかし、アクセストークンがフェッチされると同時に、バリデータインスタンスを返します。これを呼び出すコードは、最初のシナリオで失敗する 'validate'メソッドを実行しようとします。そしてこの関数がコード化されている方法では、そこからリダイレクトすることはできません。 – Sandeesh