【发布时间】:2021-10-27 05:33:45
【问题描述】:
当用户创建一个新帐户时,我添加了它的 API 令牌并将其返回给用户。但是当用户查看他们的帐户信息时,我不想将 API 令牌返回给用户。
GET /account:返回 API Token 作为响应。
这是我的代码文件 User.php:
public function index()
{
$users = User::where('id', auth()->user()->id)->get();
return response([
'data' => UserResource::collection($users),
'message' => 'Retrieve successfully'
], 200);
}
// POST
public function store(Request $request)
{
$data = $request->all();
$validator = Validator::make($data, [
'name' => 'required|max:255|string',
'email' => 'required|email|unique:users,email',
'password' => 'required|string',
]);
if ($validator->fails()) {
return response(['error' => $validator->errors(), 'Validation Error'], 400);
}
$users = User::create($data);
$token = $users->createToken('accessToken')->plainTextToken;
return response([
'data' => new UserResource($users),
'api_token' => $token,
'message' => 'Created successfully'
], 201);
}
这是我的代码文件 api.php(路由):
Route::group(['prefix' => 'v1' ], function () {
// Account
Route::post('/account', [UserController::class, 'store']);
// Protected route
Route::group(['middleware' => ['auth:sanctum']], function () {
// Account
Route::get('/account', [UserController::class, 'index']);
});
});
【问题讨论】:
标签: laravel endpoint laravel-sanctum laravel-api