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

问题描述 投票:0回答:2

我正在使用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>

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

php reactjs laravel redux
2个回答
0
投票

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

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


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.