Cơ chế refresh token cho API request

11th Mar 2023
Cơ chế refresh token cho API request
Table of contents

Thả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ỉ.

Bạn thấy bài viết này như thế nào?
2 reactions

Add new comment

Image CAPTCHA
Enter the characters shown in the image.

Related Articles

Chào mọi người, cho mình hỏi ngu phát là mình có thẻ html như span hoặc p và set contenteditable = "true"

Rất cảm ơn mọi người đã đến buổi Meet up ngày hôm nay và lắnng nghe bài nói của mình.

Cty em tuyển senior fullstack mà 5/6 ứng viên bỏ cuộc không làm được bài này

Không chạy code (pseudo code thôi), các bạn nghĩ là 2 logs này giống nhau không? Nghĩa là sẽ log TestDir instance và TestComp instance?