使用API集成中的验证创建用户验证功能当我尝试验证用户进行一些验证并在postman
中检查它时,它在本地计算机上工作正常但是当我在服务器上上传代码并进行测试时,它是不工作。
控制器功能:
public function confirmUser(ForgotPasswordRequest $request)
{
// ForgotPasswordRequest for validate
$user = User::leftjoin('user_details','users.id', '=', 'user_details.user_id')
->where('user_details.phone', '=', $request->post('phone'))
->where('users.email', '=', $request->post('email'))
->first();
if(!$user) {
return response()->json([
'message' => "The credentials you provided cannot be determined to be authentic.!!",
'status_code' => 404,
]);
}
$token = JWTAuth::fromUser($user);
return response()->json([
'message' => "Your account is eligible for change password.!!",
'token' => $token,
'status_code' => 200
]);
}
我的forgotPasswordRequest.php
代码:
<?php
namespace App\Api\V1\Requests;
use Config;
use Dingo\Api\Http\FormRequest;
class ForgotPasswordRequest extends FormRequest
{
public function rules()
{
return Config::get('boilerplate.forgot_password.validation_rules');
}
public function authorize()
{
return true;
}
}
在config
文件夹boilerplate.php
文件中包含forgot_password
规则:
'forgot_password' => [
'validation_rules' => [
'email' => 'required|email',
'phone' => 'required|min:11|numeric'
]
],
当email
和phone
为空时,它仅返回email
验证而不是phone
:
{
"error": {
"message": "422 Unprocessable Entity",
"errors": {
"email": [
"The email field is required."
]
},
"status_code": 422
}
}
我做错了什么?它与cookies有关吗?
答案 0 :(得分:0)
这里没有任何问题。
Laravel会检查email
字段是否已正确填写。不是,Laravel打破了验证方法并返回异常。
如果您填写email
字段,但将phone
字段留空,则验证回复将与phone
字段相关。