React 应用程序使用 Laravel 进行 API 和用户登录。关于从数据库中检索当前登录用户的问题

Posted

技术标签:

【中文标题】React 应用程序使用 Laravel 进行 API 和用户登录。关于从数据库中检索当前登录用户的问题【英文标题】:React app using Laravel for API and user login. Question about retrieving currently logged in user from database 【发布时间】:2019-10-29 21:31:45 【问题描述】:

我想知道当严格使用 Laravel 时,从数据库中检索当前登录用户的最佳方式是什么,因为它是内置的用户登录和它的 API。我读过该会话不适用于 API 路由,我不确定在登录时为用户创建令牌是否是正确的解决方案。如果我理解正确,使用 Auth 很容易做到这一点,但由于我在前端使用 React,所以有点棘手。

我的想法是在登录时更新数据库和用户控制器中该用户记录的时间戳,检索具有最新时间戳的记录,即该用户,然后将该用户作为 JSON 对象返回我可以通过前端的 API URL 端点访问它。不过我不确定。

任何帮助或见解都会很棒。谢谢

【问题讨论】:

您是否尝试使用 Auth::user() 将用户传递给 React 组件? 【参考方案1】:

关于这个有一个文档条目。 https://laravel.com/docs/5.8/passport

您是否需要当前登录用户的列表?或者您正在寻找 $user = Auth::user(); 的等价物?

如果是后者,您可以简单地向此处描述的护照 API 发送请求:https://laravel.com/docs/5.8/passport#consuming-your-api-with-javascript

axios.get('/api/user')
.then(response => 
    console.log(response.data);
);

【讨论】:

以上是关于React 应用程序使用 Laravel 进行 API 和用户登录。关于从数据库中检索当前登录用户的问题的主要内容,如果未能解决你的问题,请参考以下文章

使用 React Native 和 Laravel 后端对 Pusher 进行身份验证

Laravel/React:barryvdh/laravel-cors 处理预检 HTTP OPTIONS 请求

如何将用户类型的路由保护添加到具有 React 前端和 JWT 的 Laravel Web 应用程序?

Laravel + React,使用 Laravel 身份验证的 api

Laravel - React,强制 Axios 进行拒绝/捕获

使用 Laravel 托管 ReactJS