Skip to content

Commit 14506ff

Browse files
committed
Fixed login issue for students. Corrected authentication
1 parent 2816337 commit 14506ff

File tree

2 files changed

+98
-92
lines changed

2 files changed

+98
-92
lines changed

app/Http/Controllers/SinhVienAuthController.php

+8-8
Original file line numberDiff line numberDiff line change
@@ -35,26 +35,26 @@ public function login(Request $request)
3535
{
3636
// Xác thực dữ liệu đầu vào từ request
3737
$request->validate([
38-
'maSV' => 'required|string|max:10|exists:tb_SinhVien,maSV', // 'maSV' là bắt buộc, phải là chuỗi, tối đa 10 ký tự và phải tồn tại trong bảng 'tb_SinhVien'
38+
'maSV' => 'required|string|max:255', // 'maSV' là bắt buộc, phải là chuỗi, tối đa 255 ký tự
3939
'matKhau' => 'required', // 'matKhau' là bắt buộc
4040
]);
4141

4242
// Tìm sinh viên theo mã sinh viên
4343
$sinhVien = SinhVien::where('maSV', $request->maSV)->first();
4444

45-
// Kiểm tra xem sinh viên có tồn tại và mật khẩu có đúng không
45+
// Kiểm tra xem sinh viên có tồn tại
4646
if (!$sinhVien || !Hash::check($request->matKhau, $sinhVien->matKhau)) {
47-
// Nếu thông tin không hợp lệ, trả về thông báo lỗi với mã trạng thái 401 (Unauthorized)
48-
return response()->json(['message' => 'Thông tin đăng nhập không hợp lệ'], 401);
47+
// nếu không tìm thấy maSV hoặc mk không chính xác, trả về thông báo lỗi chung
48+
return response()->json(['message' => 'Tài khoản hoặc mật khẩu không hợp lệ'], 401);
4949
}
5050

51-
// Tạo token cho sinh viên và trả về
52-
$token = $sinhVien->createToken('copecuteHPC')->plainTextToken;
51+
// tạo token
52+
$token = $sinhVien->createToken('copecute!~', [], now()->addHours(5))->plainTextToken;
5353

54-
// Trả về thông báo thành công cùng với token
54+
// trả về thông báo thành công cùng với token
5555
return response()->json([
5656
'message' => 'Đăng nhập thành công',
5757
'token' => $token,
5858
]);
5959
}
60-
}
60+
}

routes/api.php

+90-84
Original file line numberDiff line numberDiff line change
@@ -25,21 +25,22 @@
2525
// Route đăng nhập cho sinh viên
2626
Route::post('/sinhvien/login', [SinhVienAuthController::class, 'login']);
2727

28-
// Sinh viên
29-
Route::middleware('auth:sanctum')->group(function () {
28+
// xác thực bằng middleware auth:sanctum
29+
Route::middleware([ApiAuthenticate::class])->group(function () {
30+
// Sinh viên
3031
Route::prefix('sinhvien')->group(function () {
3132
Route::get('/', [SinhVienController::class, 'apiIndex']);
3233
Route::get('/{id}', [SinhVienController::class, 'apiShow']);
3334
Route::post('/', [SinhVienController::class, 'apiStore']);
3435
Route::put('/{id}', [SinhVienController::class, 'apiUpdate']);
3536
Route::delete('/{id}', [SinhVienController::class, 'apiDestroy']);
3637
Route::get('/search', [SinhVienController::class, 'apiSearch']);
38+
39+
// kết quả
40+
Route::get('/{sinhvienId}/ketqua/{dethiId}', [KetQuaController::class, 'show'])->name('api.ketqua.show');
3741
});
38-
});
3942

40-
// xác thực bằng middleware auth:sanctum
41-
// khoa
42-
Route::middleware([ApiAuthenticate::class])->group(function () {
43+
// khoa
4344
Route::prefix('khoa')->group(function () {
4445
Route::get('/', [KhoaController::class, 'apiIndex']);
4546
Route::get('//{id}', [KhoaController::class, 'apiShow']);
@@ -48,83 +49,88 @@
4849
Route::delete('/{id}', [KhoaController::class, 'apiDestroy']);
4950
Route::get('?search', [KhoaController::class, 'apiSearch']);
5051
});
51-
});
52-
53-
// Nghành
54-
Route::get('/nganh', [NganhController::class, 'apiIndex']);
55-
Route::get('/nganh/{id}', [NganhController::class, 'apiShow']);
56-
Route::post('/nganh', [NganhController::class, 'apiStore']);
57-
Route::put('/nganh/{id}', [NganhController::class, 'apiUpdate']);
58-
Route::delete('/nganh/{id}', [NganhController::class, 'apiDestroy']);
59-
Route::get('/nganh?search', [NganhController::class, 'apiSearch']);
60-
61-
// lớp
62-
Route::get('/lop', [LopController::class, 'apiIndex']);
63-
Route::get('/lop/timkiem', [LopController::class, 'apiSearch']);
64-
Route::get('/lop/{id}', [LopController::class, 'apiShow']);
65-
Route::post('/lop', [LopController::class, 'apiStore']);
66-
Route::put('/lop/{id}', [LopController::class, 'apiUpdate']);
67-
Route::delete('/lop/{id}', [LopController::class, 'apiDestroy']);
68-
69-
70-
// Môn học
71-
Route::prefix('monhoc')->group(function () {
72-
Route::get('/', [MonHocController::class, 'apiIndex']);
73-
Route::get('/{id}', [MonHocController::class, 'apiShow']);
74-
Route::post('/', [MonHocController::class, 'apiStore']);
75-
Route::put('/{id}', [MonHocController::class, 'apiUpdate']);
76-
Route::delete('/{id}', [MonHocController::class, 'apiDestroy']);
77-
});
78-
79-
// câu hỏi
80-
Route::middleware('auth:sanctum')->group(function () {
81-
Route::get('/cauhoi', [CauHoiController::class, 'apiIndex']);
82-
Route::get('/cauhoi/{id}', [CauHoiController::class, 'apiShow']);
83-
Route::post('/cauhoi', [CauHoiController::class, 'apiStore']);
84-
Route::put('/cauhoi/{id}', [CauHoiController::class, 'apiUpdate']);
85-
Route::delete('/cauhoi/{id}', [CauHoiController::class, 'apiDestroy']);
86-
87-
// đáp án
88-
Route::get('/cauhoi/{cauHoiId}/dapan', [DapAnController::class, 'apiIndex']);
89-
Route::get('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiShow']);
90-
Route::post('/cauhoi/{cauHoiId}/dapan', [DapAnController::class, 'apiStore']);
91-
Route::put('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiUpdate']);
92-
Route::delete('/cauhoi/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiDestroy']);
93-
});
94-
95-
// kỳ thi
96-
Route::prefix('kythi')->group(function () {
97-
Route::get('/', [KyThiController::class, 'apiIndex']);
98-
Route::get('/{id}', [KyThiController::class, 'apiShow']);
99-
Route::post('/', [KyThiController::class, 'apiStore']);
100-
Route::put('/{id}', [KyThiController::class, 'apiUpdate']);
101-
Route::delete('/{id}', [KyThiController::class, 'apiDestroy']);
102-
});
103-
104-
// ca thi
105-
Route::get('/kythi/{kythi_id}/cathi', [CaThiController::class, 'apiIndex']);
106-
Route::post('/kythi/{kythi_id}/cathi', [CaThiController::class, 'apiStore']);
107-
Route::get('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiShow']);
108-
Route::put('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiUpdate']);
109-
Route::delete('/kythi/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiDestroy']);
110-
111-
// đề thi
112-
Route::prefix('dethi')->group(function () {
113-
Route::get('/', [DeThiController::class, 'apiIndex']);
114-
Route::get('/{id}', [DeThiController::class, 'apiShow']);
115-
Route::post('/', [DeThiController::class, 'apiStore']);
116-
Route::put('/{id}', [DeThiController::class, 'apiUpdate']);
117-
Route::delete('/{id}', [DeThiController::class, 'apiDestroy']);
118-
});
52+
53+
// Nghành
54+
Route::prefix('nganh')->group(function () {
55+
Route::get('/', [NganhController::class, 'apiIndex']);
56+
Route::get('/{id}', [NganhController::class, 'apiShow']);
57+
Route::post('/', [NganhController::class, 'apiStore']);
58+
Route::put('/{id}', [NganhController::class, 'apiUpdate']);
59+
Route::delete('/{id}', [NganhController::class, 'apiDestroy']);
60+
Route::get('?search', [NganhController::class, 'apiSearch']);
61+
});
62+
63+
// lớp
64+
Route::prefix('lop')->group(function () {
65+
Route::get('/', [LopController::class, 'apiIndex']);
66+
Route::get('/timkiem', [LopController::class, 'apiSearch']);
67+
Route::get('/{id}', [LopController::class, 'apiShow']);
68+
Route::post('/', [LopController::class, 'apiStore']);
69+
Route::put('/{id}', [LopController::class, 'apiUpdate']);
70+
Route::delete('/{id}', [LopController::class, 'apiDestroy']);
71+
});
72+
73+
// Môn học
74+
Route::prefix('monhoc')->group(function () {
75+
Route::get('/', [MonHocController::class, 'apiIndex']);
76+
Route::get('/{id}', [MonHocController::class, 'apiShow']);
77+
Route::post('/', [MonHocController::class, 'apiStore']);
78+
Route::put('/{id}', [MonHocController::class, 'apiUpdate']);
79+
Route::delete('/{id}', [MonHocController::class, 'apiDestroy']);
80+
});
81+
82+
// câu hỏi
83+
Route::prefix('cauhoi')->group(function () {
84+
Route::get('/', [CauHoiController::class, 'apiIndex']);
85+
Route::get('/{id}', [CauHoiController::class, 'apiShow']);
86+
Route::post('/', [CauHoiController::class, 'apiStore']);
87+
Route::put('/{id}', [CauHoiController::class, 'apiUpdate']);
88+
Route::delete('/{id}', [CauHoiController::class, 'apiDestroy']);
89+
});
90+
91+
// đáp án
92+
Route::prefix('cauhoi')->group(function () {
93+
Route::get('/{cauHoiId}/dapan', [DapAnController::class, 'apiIndex']);
94+
Route::get('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiShow']);
95+
Route::post('/{cauHoiId}/dapan', [DapAnController::class, 'apiStore']);
96+
Route::put('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiUpdate']);
97+
Route::delete('/{cauHoiId}/dapan/{id}', [DapAnController::class, 'apiDestroy']);
98+
});
99+
100+
// kỳ thi
101+
Route::prefix('kythi')->group(function () {
102+
Route::get('/', [KyThiController::class, 'apiIndex']);
103+
Route::get('/{id}', [KyThiController::class, 'apiShow']);
104+
Route::post('/', [KyThiController::class, 'apiStore']);
105+
Route::put('/{id}', [KyThiController::class, 'apiUpdate']);
106+
Route::delete('/{id}', [KyThiController::class, 'apiDestroy']);
107+
});
108+
109+
// ca thi
110+
Route::prefix('kythi')->group(function () {
111+
Route::get('/{kythi_id}/cathi', [CaThiController::class, 'apiIndex']);
112+
Route::post('/{kythi_id}/cathi', [CaThiController::class, 'apiStore']);
113+
Route::get('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiShow']);
114+
Route::put('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiUpdate']);
115+
Route::delete('/{kythi_id}/cathi/{id}', [CaThiController::class, 'apiDestroy']);
116+
});
117+
118+
// đề thi
119+
Route::prefix('dethi')->group(function () {
120+
Route::get('/', [DeThiController::class, 'apiIndex']);
121+
Route::get('/{id}', [DeThiController::class, 'apiShow']);
122+
Route::post('/', [DeThiController::class, 'apiStore']);
123+
Route::put('/{id}', [DeThiController::class, 'apiUpdate']);
124+
Route::delete('/{id}', [DeThiController::class, 'apiDestroy']);
125+
});
126+
127+
// phòng thi
128+
Route::prefix('phongthi')->group(function () {
129+
Route::get('/', [PhongThiController::class, 'apiIndex']);
130+
Route::get('/{id}', [PhongThiController::class, 'apiShow']);
131+
Route::post('/', [PhongThiController::class, 'apiStore']);
132+
Route::put('/{id}', [PhongThiController::class, 'apiUpdate']);
133+
Route::delete('/{id}', [PhongThiController::class, 'apiDestroy']);
134+
});
119135

120-
// phòng thi
121-
Route::prefix('phongthi')->group(function () {
122-
Route::get('/', [PhongThiController::class, 'apiIndex']);
123-
Route::get('/{id}', [PhongThiController::class, 'apiShow']);
124-
Route::post('/', [PhongThiController::class, 'apiStore']);
125-
Route::put('/{id}', [PhongThiController::class, 'apiUpdate']);
126-
Route::delete('/{id}', [PhongThiController::class, 'apiDestroy']);
127136
});
128-
129-
// kết quả
130-
Route::get('/sinhvien/{sinhvienId}/ketqua/{dethiId}', [KetQuaController::class, 'show'])->name('api.ketqua.show');

0 commit comments

Comments
 (0)