【发布时间】:2018-10-16 08:13:19
【问题描述】:
我用 laravel 5.5 开发了一些 api。一切正常。
但是假设用户直接在浏览器中输入一个“api”url(例如:api/books),那么他会收到一个错误:
InvalidArgumentException 路由 [登录] 未定义。
如何防止这种情况? 我试图在 routes/web.php 文件中添加一些路由,但没有成功。
任何建议都会有所帮助。
或者我应该什么都不做(很少有用户会这样做)?
谢谢
【问题讨论】:
-
API url 已打开。所以,一开始没什么可隐藏的,任何人都可以直接访问它。需要经过身份验证的用户的 API 应在标头或 url 参数中包含令牌。因此,您可以检查访问 url 是否包含令牌。如果不是,那么您可以抛出错误。
-
嗨,索文。我宁愿寻找一种解决方案,例如“如果在文件 routes/web.php 中找不到路由,则重定向到信息页面”。这就是我想要做的。你所说的解决方案在我看来似乎更复杂。没有?
-
对我来说并不复杂。无论如何,您无法在 web.php 之类的文件中检查路由列表。您可以为所有 api 路由添加前缀并检查您的路由是否包含该前缀。但同样,您也在限制来自其他设备的呼叫。因为直接从浏览器输入或从手机调用是一回事。
标签: laravel-5