将授权用户从Laravel后端传递到React前端的最安全方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将授权用户从Laravel后端传递到React前端的最安全方式相关的知识,希望对你有一定的参考价值。

我正在使用laravel构建一个天气应用程序(差不多已完成),我决定使用react / redux / react-router实现前端,并使用来自api调用的laravel。我决定留下同样的唯一一件事是我的自定义laravel auth实现路由和视图。但是,我很难找到一种安全的方法来在登录后传递我的Auth :: user对象,以便存储在redux上。我有2个选择:

1)登录后,在渲染主jsx之前,对特定路径发出axios请求,以便返回Auth :: user,如:

在routes.php

Route::post('/auth/user' ,function(){
   return response()->json(['user'=>auth()->user()]);
})->middleware('auth');

在js

axios.post('/auth/user').then((res)=>{console.log(res.data.user)}).catch((e)=>{console.log(e)})

2)用刀片传递Auth :: user,用getAttribute捕获它,将它保存到redux并立即从DOM中删除:

<div id="app" data-usr="{{ auth()->user() }}"></div>

然而,他们似乎都不像是一种传递这种数据的安全方式。谁能告诉我他对此的看法或者给我一个更好的解决方案?非常感谢。

答案

我会创建一个Class来代表用户,只需要我需要在前端显示的重要信息。

因此,不是将auth->user()传递到前面,而是将其注入decorator并使用您希望显示的方法生成simpler user class

另一答案

值得庆幸的是,我找到了一个内置Laravel的API TOKEN实现的解决方案。此外,我在注销后销毁令牌并在登录时重新创建它,所以如果他没有登录,没有人可以使用它与其他服务收集数据

以上是关于将授权用户从Laravel后端传递到React前端的最安全方式的主要内容,如果未能解决你的问题,请参考以下文章

授权和获取访问令牌后如何将用户传回前端客户端?

使用 GET 路由将变量从 ReactJS 前端传递到 NodeJS 后端

在 Google OAuth2 授权流程之后如何将 JWT 从我的后端服务器发送到我的前端

Laravel 4:将模型从过滤器传递到控制器动作

如何正确地将 blob 从前端传递到后端?

使用 Firebase HTTP 函数(Firebase、Stripe OAuth、React (JSX) 前端)将授权代码返回到 Stripe