Cơ chế refresh token cho API request
11th Mar 2023Thảo luận ngoài lề xíu mn ơi,
Hiện tại web bên e muốn thêm 1 phần mới và đòi hỏi real-time (liên quan về game) dùng socketio. Hiện tại web có dùng access token và đã có cơ chế refresh token cho API request.
Cơ chế cho API request là:
- request a resource
- get 401 -> store current request configuration & request the refresh endpoint
- get new token -> send a request with the configuration above
E định áp tương tự cho socket nhưng có vấn đề:
- có 1 process để tính trajectory của bullet từ Pub user, diễn ra khoảng 10s. và cứ 100ms sẽ emit về server dữ liệu. server sẽ emit lại cho các Sub user trong room.
- các Sub user sẽ nhận đc dữ liệu và tái hiện bullet trajectory.
- mọi thứ mượt mà khi k có token, nhưng khi bỏ token vào và nó hết hạn ở đâu đó giữa 10s kia
- nếu dùng cơ chế tương tự như cho API thì nó sẽ bị giật rồi sau khi retry thành công những lần bị fail trc thì nó sẽ giật lùi lại.
E có tham khảo vài nguồn từ gg nhưng vẫn muốn hỏi mn về kinh nghiệm authentication với socketio ntn ấy. Handle token expired và refresh nó như thế nào. Hiện tại access token có ttl 2 phút.
--------------
Mình đồng ý vs ý kiến dùng chung token,
Nếu 401 giữa chừng thì gọi refresh và reconnect, hiện tại đang chơi như vậy. Ko biết có vấn đề gì kk nhưng mà bạn làm game thì mình nghĩ ko nên để ttl thấp vậy,
Cái này mình nghĩ thôi nhé. Chỉ cần AuthN lúc handshake thôi là được rồi, còn sau khi đã mở được connection thì mình nghĩ ko cần phải AuthN từng cái message nhỉ.
- 6 views
Add new comment