II. Phần báo cáo cá nhân: Tr n Hoàng Khang 22 ầ
3. Đăng nhập người dùng:
API đăng nhập (Login) : “localhost:5000/api/login” Thực hiện đăng nhập qua Postman:
26
Sau khi đăng nhập thành công sẽ nhận được một token như hình trên để giúp xác
nhận các chức năng mà một User có thểthực hi n: ệ 4. Các Middleware của người dùng:
4.1: validateRegisterRequest:
Dùng thư viện express-validator với hàm check để kiểm tra dữ liệu đầu vào, tránh trường hợp người dùng nhập sai hoặc cố tình nhập sai để truy cập trái phép vào hệ thống.
4.2: validateLoginRequest:
Tương tự như đăng ký User
27 5. Các chức năng của User:
Để có thể sử dụng các chức năng của mình, User luôn phải được kiểm tra qua Middleware userMiddleware để xác nh n role User: ậ (“api/src/common- middleware index/ .js”)
Ví dụ trong Postman, điều ki n ệ được ki m tra khi thi u token s thông báo yêu c u ể ế ẽ ầ
“Authorization required” t c lúc này hứ ệ thống chưa thể xác nhận người đang truy cập thuộc role user hay admin .
5.1Thao tác với gi hàng: ỏ
Sau khi chọn được mặt hàng ưng ý, người dùng có th bể ắt đầu thêm s n phả ẩm
đó vào giỏ hàng. Cũng như quản lý chúng để phục v nhu cầu mua sắm. ụ
API thêm vào giỏ: “localhost:5000/api/user/cart/add- -cartto ”
28 Tích vào ô Authorization, ở c t Valueộ : Bearer[khoảng trắng]<token>
Với token nhận được khi đăng nhập User thành công. Ngoài ra thao tác với giỏ hàng còn:
• getCartItems: Xem gi hàng ỏ
• removeItem: Xóa sản phẩm trong giỏ hàng
API s ẽ được g i t Routes ọ ừ (“api/src/routes/cart.js”) đến các middleware trong thư mục
Validation(“api/src/validators/auth.js”) rồi đến hàm th c thi trong Controller ự
(“api/src/controller/cart.js”).
5.2Thêm địa ch thanh toán: ỉ
Sau khi chọn được các s n phả ẩm người dùng có thểtiến hành thanh toán s n phả ẩm với việc đầu tiên là thêm địa thanh toán. Và sau đó là kiểm tra địa chỉ lại nếu c n. ầ
API: “localhost:5000/api/user/address/create”
Xác nhận đăng nhập qua middleware requireLogin và xác nhận role người dùng qua userMiddleware. Sau đó gọi hàm addAddress trong Controller(“api/src/controller/cart.js”).
29 5.3Tạo và kiểm tra đơn hàng:
Sau khi thêm địa thanh toán và xác nhận địa ch , User sỉ ẽ tiến hành kh i tở ạo đơn hàng v i hàm ớ addOrder
Ta có thể thấy có hai hàm khá giống nhau đó là getOrder và getOrders. Với phương thức /get người dùng có thể xem tất cả các đơn hàng của mình theo User ID. Với
phương thức /post người dùng sẽ tìm đơn hàng cụ thể theo orderID đã có khi tạo
đơn hàng.