【发布时间】:2021-11-24 04:07:44
【问题描述】:
我使用 Laravel 8 作为后端,使用 Angular 11 作为前端。在使用 url 购买后,我想通过前端的 API 将三个参数传递给 Laravel。这将如下所示:.../{user_id}/${track_id}/${price_id}。
我不知道这是否是确认购买的最佳方式,但不幸的是,即使经过大量研究,我也不知道其他任何方式。唯一的问题是它非常容易受到攻击,并且可以写任何数字,例如邮递员,因此产品最终会出现在他们的帐户中。
现在我在我的 api.php 中尝试了:
Route::post('addTrackusers/{user_id}/{track_id}/{track_pice}', 'App\Http\Controllers\trackusersController@addTrackusers')->middleware(['auth:api', Payout::class]);
在这条路线的帮助下,我得到了所需的三个参数。然而,在那之后,我想使用中间件来防止未经授权的用户传递任何没有购买任何东西的参数:
中间件/Payout.php
public function handle($request, Closure $next)
{
$user = auth()->user();
if ($request->id != $user->id) {
abort(403, 'Unauthorized action');
} else {
return $next($request);
}
}
我真的不知道如何解决这个问题。我的想法是传递三个参数并比较它们是否属于当前用户。
但当前用户也可以只在 Postman 中输入他的令牌,然后他将被授权传递三个参数。我真的很感激任何建议或如何最好地解决这个问题。
非常感谢!
【问题讨论】:
标签: angular laravel api paypal e-commerce