我有一个API网址:
API /类/ {ID}
我在其中定义了类控制器和show()函数,如下所示:
public function show($id)
{
$classes = $this->classesService->findById($id);
if ($classes) {
return response()->json(['message' => 'Success', 'success' => true, 'status' => 200, 'data' => $classes]);
} else {
return response()->json(['message' => 'Not found', 'success' => false, 'status' => 404, 'data' => null]);
}
}
现在问题是,如果用户仅限于在他注册的类中看到,我从前端的user.info获取class_id并将其传递给API调用URL,但我是想知道用户是否可以调用此api并更改class_id然后他可以看到每个班级,如何确保他只能访问他所属的班级ID?
我的下一个想法是从后端初始化类ID,如下所示:
public function show($id)
{
$classes = $this->classesService->findById(Auth::user()->student->team->class_id);
if ($classes) {
return response()->json(['message' => 'Success', 'success' => true, 'status' => 200, 'data' => $classes]);
} else {
return response()->json(['message' => 'Not found', 'success' => false, 'status' => 404, 'data' => null]);
}
}
但是,如果我想稍后检查每个课程信息和管理员视角,这会让我有问题,因为管理员可以看到每个课程的详细信息...所以这样管理员没有课程ID,它显示空...
任何想法如何实现这样的事情,用户只能看到他的类和管理员可以看到所有类
这需要两个不同的API调用,两个函数吗?