chúng tôi sẽ giới thiệu cách lấy thông tin người dùng từ người dùng đăng nhập trong hệ thống xác thực jwt. blog này là một loạt. nếu bạn muốn biết cách cài đặt phần mềm trung gian jwt và triển khai tính năng đăng ký, đăng nhập, hãy xem các blog trước của chúng tôi
- cài đặt và cài đặt jwt
- jwt. đăng ký
- jwt. đăng nhập
Kho
chúng tôi đã tạo kho lưu trữ hệ thống xác thực jwt. nhấp vào liên kết bên dưới để xem kho lưu trữ của chúng tôi
- laravel-jwt-bài tập. https. //github. com/dev-yakuza/laravel-jwt-bài tập
Môi trương phat triển
ở đây, chúng tôi sẽ sử dụng môi trường phát triển Laravel được tạo bởi Laradock và Ansible. nếu bạn muốn biết môi trường của chúng tôi, hãy xem blog trước của chúng tôi
- Ansible & Laravel
Sửa đổi bộ điều khiển
mở tệp /app/Http/Controllers/JWTAuthController.php
trong thư mục dự án Laravel và thêm mã bên dưới
public function user[] {
return response[]->json[Auth::guard['api']->user[]];
}
chức năng này là nhận và phản hồi thông tin người dùng đăng nhập theo yêu cầu của khách hàng [trình duyệt]
Sửa đổi tuyến đường
sửa đổi tuyến đường để kết nối chức năng và url của bộ điều khiển. mở tệp /routes/api.php
và thêm mã bên dưới
Route::get['unauthorized', function[] {
return response[]->json[[
'status' => 'error',
'message' => 'Unauthorized'
], 401];
}]->name['api.jwt.unauthorized'];
Route::group[['middleware' => 'auth:api'], function[]{
Route::get['user', '[email protected]']->name['api.jwt.user'];
}];
Tuyến đường user
nhận thông tin người dùng sử dụng phần mềm trung gian auth:api
. phần mềm trung gian này đánh giá người dùng đăng nhập hay không đăng nhập và nếu người dùng đã đăng nhập, người dùng có thể lấy thông tin người dùng. chúng tôi sẽ khiến người dùng chuyển hướng unauthorized
và phản hồi 401
nếu người dùng chưa đăng nhập
chuyển hướng
Laravel
Route::get['unauthorized', function[] {
return response[]->json[[
'status' => 'error',
'message' => 'Unauthorized'
], 401];
}]->name['api.jwt.unauthorized'];
Route::group[['middleware' => 'auth:api'], function[]{
Route::get['user', '[email protected]']->name['api.jwt.user'];
}];
0 middleware về cơ bản có tính năng chuyển hướng. chúng tôi sẽ định cấu hình chuyển hướng cho Route::get['unauthorized', function[] {
return response[]->json[[
'status' => 'error',
'message' => 'Unauthorized'
], 401];
}]->name['api.jwt.unauthorized'];
Route::group[['middleware' => 'auth:api'], function[]{
Route::get['user', '[email protected]']->name['api.jwt.user'];
}];
1 và đặt phản hồi 401
. mở tệp Route::get['unauthorized', function[] {
return response[]->json[[
'status' => 'error',
'message' => 'Unauthorized'
], 401];
}]->name['api.jwt.unauthorized'];
Route::group[['middleware' => 'auth:api'], function[]{
Route::get['user', '[email protected]']->name['api.jwt.user'];
}];
3 và sửa đổi nó như bên dướiprotected function redirectTo[$request]
{
if [! $request->expectsJson[]] {
if [$request->is['api/*']] {
return route['api.jwt.unauthorized'];
}
return route['login'];
}
}
Bài kiểm tra
hãy kiểm tra tính năng thông tin người dùng thông qua
Route::get['unauthorized', function[] {
return response[]->json[[
'status' => 'error',
'message' => 'Unauthorized'
], 401];
}]->name['api.jwt.unauthorized'];
Route::group[['middleware' => 'auth:api'], function[]{
Route::get['user', '[email protected]']->name['api.jwt.user'];
}];
4# URL
localhost/api/user
# header
Authorization
Bearer jwt_token
nếu mã thông báo jwt hợp lệ, bạn có thể lấy thông tin người dùng như màn hình bên dưới
nếu mã thông báo jwt hết hạn hoặc người dùng không đăng nhập yêu cầu thông tin người dùng, bạn có thể nhận được phản hồi lỗi 401
Hoàn thành
chúng tôi đã hoàn thành việc phát triển api có tính năng thông tin người dùng trong hệ thống xác thực jwt. ở bài đăng blog tiếp theo, chúng tôi sẽ giới thiệu cách tạo tính năng làm mới mã thông báo jwt sau khi đăng nhập