【发布时间】:2019-11-13 04:12:19
【问题描述】:
我正在使用 Laravel 5.8 构建 API 端点并使用 Passport 处理 API 身份验证。下面是使用 API 的 React 应用程序的简单逻辑
- 成功注册会将用户重定向到用户仪表板
- 成功登录会将用户重定向到用户仪表板
- 仪表板显示用户详细信息
我已经设置了这样的端点
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 端点的最佳方法是什么?
【问题讨论】:
标签: php laravel-passport laravel-5.8