Laravel 5.7处理来自API的电子邮件验证错误

时间:2018-10-12 01:08:34

标签: api email error-handling laravel-5.7

我正在使用laravel 5.7构建API REST。

当我将verified中间件添加到路由组中,并尝试通过客户端api使用未经验证的用户登录时,出现错误400 Bad request。此错误过于笼统,无法为我的客户清楚地显示问题(在登录表单中发生)。

enter image description here

如果我在render()中编辑Handler.php方法以忽略isApiCall()并返回parent::render($request, $e);,那么我将得到完整的错误(Your email address is not verified,状态403),但是当我尝试使用response()->json([$e])在json对象中返回此值时,响应始终为空。

enter image description here enter image description here

在这种情况下,如何正确处理api错误以从异常返回完整消息?

1 个答案:

答案 0 :(得分:0)

您可能已经解决了此问题,但是此解决方案可能会帮助其他人:

您的响应返回空数组的原因是因为您正在将Exception类型的对象传递给需要数组的json函数。响应应如下所示:

return response()->json(['message' => $e->getMessage()]);

这将返回json响应,如:

{
"message": "Your email address is not verified"
}