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

Posted

技术标签:

【中文标题】Laravel 5.7 处理来自 API 的电子邮件验证错误【英文标题】:Laravel 5.7 Handle email verification errors from API 【发布时间】:2019-03-17 04:08:27 【问题描述】:

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

当我将 verified 中间件添加到我的路由组并尝试通过我的客户端 api 使用未经验证的用户登录时,我收到错误 400 Bad request。这个错误太笼统了,没有向我的客户清楚地显示问题(它发生在登录表单中)。

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

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

【问题讨论】:

【参考方案1】:

您可能已经解决了这个问题,但这个解决方案可能对其他人有帮助:

您的响应返回空数组的原因是您将异常类型的对象传递给期望数组的 json 函数。响应应如下所示:

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

这将返回一个 json 响应,如:


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

【讨论】:

以上是关于Laravel 5.7 处理来自 API 的电子邮件验证错误的主要内容,如果未能解决你的问题,请参考以下文章

用于 api 的 Laravel/Lumen 电子邮件修剪

登录laravel 5.7后重定向到上一页

未找到 Laravel 5.7 电子邮件验证类“DOMDocument”

了解来自 GCP 的“需要采取行动”的电子邮件,重新:启用 Cloud Build API

Laravel 5.7中的电子邮件验证语言文件

API 验证 laravel 5.7