问题标签 [laravel-api]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
145 浏览

php - 如何在电子邮件中为 api 路由和 laravel 上的 web 路由创建不同的密码重置链接

因此,当用户访问该功能时,我正在尝试为路由 API 和 Web 路由创建忘记密码功能,他将收到一封包含重置密码链接的电子邮件。并且电子邮件中的链接将根据用户使用的路线而有所不同。

例如:当用户访问API路由时,用户会收到链接http://website.com/api/password/reset,当用户访问web路由时会收到链接http://webiste .com/密码/重置

我试过使用Request :: is ('api *')它,它在本地服务器上运行顺利,但是当我部署到 heroku 时,Request :: is ('api *')命令不起作用,所以发送的链接指向我Request :: is ('api *')在里面使用的 web 路由ResetPasswordNotification

上面的命令在本地服务器上运行顺利,没有任何错误,但在 heroku 上不起作用。

我请求你帮助解决这个问题。谢谢你

0 投票
0 回答
340 浏览

laravel - 消息“CSRF 令牌不匹配。” 在使用 Laravel sanctum 令牌 API 时。拉拉维尔 8

我正在尝试使用基于 Laravel sanctum 令牌的身份验证来构建 API。在邮递员上,它工作正常,并提供所需的输出,但对于 VueApp 或任何服务器运行的应用程序,它给了我一个错误响应。像下面

CSRF token mismatch.

我有两条 API 路由。

当使用邮递员访问这些端点时,我得到了所需的输出作为响应,但是当尝试使用 Axios 与 Vue/CLI 应用程序相同时,得到以下响应......

CSRF token mismatch.

0 投票
1 回答
126 浏览

laravel-api - 尽管存在 Laravel 8,但找不到模型

我很难找到我错过的东西,但我的模型虽然存在但没有被检测到。我通过“php artisan make:model VacationLeave -m -c”创建了控制器、模型和迁移。我正在使用 Laravel 8 API,我的控制器中有这个假期离开控制器

这是我的 Route Api 路由 API 而邮递员结果试图发布请求邮递员结果

到目前为止我已经尝试过:

  1. 重命名和重新安装控制器和模型
  2. 作曲家转储自动加载

任何帮助将不胜感激。感谢你们

0 投票
0 回答
51 浏览

php - API 身份验证问题

我正在第一次使用 laravel 创建 API,如果我提到任何不正确的地方,请原谅我,让我知道如何更正它。

我已经按照这篇文章创建 API 身份验证,https://www.toptal.com/laravel/restful-laravel-api-tutorial

现在我可以注册用户,并且根据博客获得 api-token,但是当我尝试使用现有用户登录时,出现以下错误

我也是同样的注销错误。

我正在附加我的登录控制器和 RegisterController,如果您需要更多详细信息并帮助我解决此问题,请告诉我

登录控制器.php

注册控制器.php

0 投票
0 回答
1971 浏览

laravel - Spatie Laravel 权限。返回具有用户角色和权限的 API 资源

返回 api 资源时出现问题。我正在使用Spatie Laravel 权限

碰巧在我的特殊情况下,我试图返回一个包含用户详细信息的 api 资源,以及用户拥有的角色和权限。

我的UserResorce.php

我的RoleResource.php

我的PermissionResource.php

正如您在文件中看到的那样,我只在真正需要它们UserResource.php时才加载rolesand 。permissions这样,如果我执行以下操作:

我得到以下结果:

因此,要加载相同的结果,但这次使用与用户关联的角色,我执行以下操作:

正如预期的那样,我得到以下结果:

现在我的问题如下,为了获取用户角色和权限,我执行了以下操作:

但是我在键中得到了一个空对象"permissions",所以我更仔细地分析了,是用户拥有的权限是由他们定义的role,我查看了文档,我看到我可以使用getAllPermissions()方法获得用户的所有权限。所以我做了以下事情:

但是通过这种方式,它也加载了permissions角色关系,它会得到一个意想不到的结果,如下所示:

这不是预期的结果,因为我在执行时期望的结果:

应通过以下方式:

并在执行时:

我期待以下结果:

有人可以帮我解决这个问题吗?非常感谢您提前。

0 投票
1 回答
683 浏览

laravel - Laravel Spatie 权限获取用户资源及其角色和权限

我正在写作,因为我已经花费了数小时的测试来寻找问题的解决方案,但我仍然没有找到解决方法。我正在使用Spatie Laravel 权限,碰巧我有 3 个资源,一个用于user,另一个用于role,另一个用于permissions。我展示了上述资源的结构:

用户资源.php

角色资源.php

权限资源.php

正如您在我的UserResource.php文件中看到的那样,我正在定义一个结构以仅在需要时显示用户角色和权限。您还可以看到,在permissions密钥中,我不仅返回与用户关联的权限,而是返回与用户直接关联并与他们拥有的角色关联的所有权限getAllPermissions()

现在看RoleResource.php文件,我定义的是与角色关联的权限仅在必要时才会显示,这就是我的问题。当我执行以下操作时:

我收到以下回复:

图像

看看 key: roles,它向我展示了permissions关系,这不是预期的结果,我希望它只有在我执行以下操作时才会向我展示该结果:

我一直在做很多测试,一切似乎都表明当我调用该方法时getAllPermissions()也会加载permissions关系,这就是发生这种情况的原因。请你帮我解决这个问题。非常感谢您提前。

0 投票
2 回答
3192 浏览

reactjs - React Axios 的 Laravel 8 CORS 问题

我将我的 API(使用 Laravel 8 框架构建)托管在一个子域 - webapi.somedomain.com 中。我正在运行使用 React 框架和 Axios 库为 HTTP 请求构建的本地版本的前端 UI。我在共享主机空间 (cPanel + CentOS) 中进行了托管,我在访问托管 API 时遇到了问题。我已经说明了我在下面看到的错误:

Access to XMLHttpRequest at 'http://webapi.somedomain.com/api/authorization/signup' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource.

所以我添加了 Laravel 自定义 CORS 中间件;使用 . 更新文件并清除缓存php artisan config:cache。没有成功。找不到其他资源。所以我添加了 Laravel CORS 包 - fruitcake/laravel-cors. 已安装、发布并添加到中间件;更新文件并清除缓存。但是当我从我的 React 项目中访问 API 时,我仍然看到了 CORS 错误

配置/cors.php:

内核.php:

我只是 Laravel 的初学者。我究竟做错了什么?有人可以帮我吗?提前致谢。

PS:我完全理解 CORS 是什么以及它是如何工作的。我是 Laravel 的新手。对开发并不陌生。我想知道我还应该做什么,以及我是否遗漏了什么。

0 投票
1 回答
78 浏览

ionic-framework - 413 Payload Too Large in ionic api 调用

我是离子新手。我正在尝试在 laravel 中使用 ionic 和 api 制作应用程序。我正在尝试在正文中发送 base64,但它给了我 413 Payload Too Large。如果我不发送 base64 那么它正在重新调整 201 创建

0 投票
2 回答
743 浏览

laravel - 错误:flutter/lib/ui/ui_dart_state.cc(177) 未处理的异常:NoSuchMethodError:在 null 上调用了 getter 'length'

我正在尝试使用颤振和 laravel api 构建应用程序。login在我开始实现该功能之前一切都很好。我收到这个错误[ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The getter 'length' was called on null. 你能告诉我我的代码有什么问题吗?万一我犯了一个愚蠢的错误,请不要生气,我才刚刚开始编程。非常感谢!登录功能代码

0 投票
1 回答
451 浏览

laravel - Laravel API:验证不访问我的 API 中的 PUT 请求数据

语境

我正在使用PUTLaravel 8 中的请求实现用户信息更新。我使用 Postman 发送请求并查看结果。

预期行为

我的PUT请求到达了控制器的功能,该功能被许可更新经过身份验证的用户。后者更新成功。因此validate调用成功执行并在请求中找到数据。

实际行为

我的PUT请求到达了控制器的功能,该功能被许可更新经过身份验证的用户。后者没有成功更新。实际上,validate调用成功执行了,但没有在请求中找到数据。

相反,数据验证说:

{ "message": "给定的数据无效。", "errors": { "email": [ "email field is required." ], "name": [ "名称字段为必填项。" ] } }

路线和请求

邮递员请求

这意味着在 Postman 术语中没有发送“Params”,发送了 Authorization Bearer 令牌,发送了一些 Headers 并且发送了一些 Body 的 x-www-form-urlencoded 数据。

API 路由

routes/api.php

Route::put('/set_user_data', [UserController::class, 'setUserData'])->name('set_user_data');

UserController::setUserData

我试图做的……或不做的事

  • Stackoverflow 的一些答案是:发送POST请求并在正文中发送_method=PUT。我不想这样做。我真的更喜欢发送PUT请求。因为我正在开发一个 API。这完全证明了我必须使用PUT请求而不是请求这一事实PUT

  • Stackoverflow 的一些答案是:x-www-form-urlencoded不要使用简单的form. 它不能解决问题;而且已经是这样了。也许它可以帮助发送图像。(注意我不想在这里发送任何图像)。

问题

为什么 Laravelvalidate找不到我请求的数据以及如何解决?