我正在使用Laravel 5.8构建API端点,并使用Passport处理API身份验证。因此,这是React应用程序的简单逻辑,它将消耗API
我已经这样设置了端点
Route::post('register', 'BaseController@register');
Route::post('login', 'BaseController@login);
BaseController现在看起来像这样
public function register(Request $request)
{
$validator = Validator::make($request->all(), [
'firstname' => 'required',
'lastname' => 'required',
'username' => 'required|email',
'password' => 'required'
]);
if ($validator->fails()) {
return response()->json(['Error', $validator->errors()], 401);
}
$user = User::create([
'firstname' => $request->firstname,
'lastname' => $request->lastname,
'username' => $request->username,
'password' => bcrypt($request->password)
]);
$success['token'] = $user->createToken('Pramopro')->accessToken;
return response()->json(['success' => $success, 'message' => 'You have successfully registered'], 200);
}
public function login() {
if (Auth::attempt(['username' => request('username'), 'password' => request('password')])) {
$user = Auth::user();
$success['token'] = $user->createToken('Pramopro')->accessToken;
return response()->json(['success' => $success, 'message' => 'You have succesfully signed in.'], 200);
}
else
{
return response()->json(['error' => 'Unauthorised'], 401);
}
}
在Postman上进行测试时,两个API端点都能正常工作。
根据逻辑,设置显示已认证用户信息的API端点的最佳方法是什么?
答案 0 :(得分:1)
用于登录: 我建议您不需要将消息发送回前端或设备。只需发送令牌,如下所示:
{
"api_token": "kdlksjdflksjdlfkjsdlkfjslkdfjskjflksdjflskdjflskdjlfksjfd"
}
如果状态为200或api_token的值为true,则可以显示一条成功消息。
关于注册: 您只是发送一条消息,说成功或其他。如果状态为200,则表示该用户已注册。