Chào mọi người, em đang làm một dự án nhỏ theo kiến trúc microservice, có 2 service gồm account service và authen service, em sử dụng nginx làm api gateway.
Khi đăng nhập thành công thì lưu access token ở bên authen service.
E muốn hỏi là khi muốn thực hiện một số chức năng ở bên account service mà cần đăng nhập mới thực hiện được, thì cần làm thế nào để check access token ở bên authen trước, nếu access token ko hợp lệ thì ko cần gọi bên account-service nữa ạ.
Còn nếu access token hợp lệ thì bắt đầu gọi bên account service ạ.
Vì em thấy nginx chỉ giống kiểu đặt cấu hình chứ không thấy nhận dữ liệu trả về từ api được, và cũng không thấy gọi được 2 service trong cùng 1 endpoint
Làm thế nào để api gateway gọi tới 2 service cùng lúc trong microservices
câu hỏi hay và thực tế, nhưng title lại bị sai và gây hiểu lầm
có vẻ như nginx mà bạn đang dùng chỉ đóng vai trò làm proxy chứ không hẳn là gateway
giải pháp
- các service tự auth hoặc tự gọi tới service khác để auth credential.
- dựng gateway, auth ở gateway rồi forward đến service xử lý, nghĩa là gateway sẽ modify lại request (thêm user info chẳn hạn) trước khi gọi đến service để thực hiện chức năng
cách 2 này khá phức tạp, nó còn là vấn đề phần quyền các thứ nữa
3 Likes
em không hiểu rõ cách 2 lắm ạ, có phần docs nào của nginx nói về cách này ko ạ
Cậu có thể config nginx để gửi subrequest tới authentication service của cậu để xác thực. Đó có lẽ là cách làm gọn gàng nhất.
4 Likes