Tôi đã thực hiện khá tốt việc thực hiện Angular SPA và JWT, nhưng tôi luôn có một thời gian khó khăn khi ủy nhiệm một mã thông báo mới.Chiến lược cơ bản cho mã thông báo làm mới ủy nhiệm để có được JWT mới
chiến thuật cơ bản của tôi đã được:
- Trong auth chặn được Auth Lỗi => Ủy với thẻ làm mới, thay thế JWT, khác logout
nào không làm việc vì nhiều cuộc gọi async sẽ bắn và một sẽ nhận được hàm đại biểu, nhưng sau đó mã thông báo làm mới sẽ được sử dụng cho thẻ thứ hai và mã thông báo đó sẽ không thành công, khi đó người dùng sẽ bị đăng xuất.
- Trước khi bất cứ điều gì khác: Kiểm tra ngày hết hạn thẻ, nếu hết hạn => đại biểu với thẻ làm mới, thay thế JWT, khác logout
nào đã có một vấn đề tương tự mà các cuộc gọi đầu tiên sẽ nhận thấy nó đã hết hạn, và lấy mã thông báo mới, nhưng vì nó là Async, phần còn lại của các cuộc gọi sẽ cháy và thất bại, vv.
Chiến lược cơ bản ở đây là gì. Tôi cảm thấy như điều đầu tiên mà ứng dụng nên làm là kiểm tra JWT và ủy nhiệm cho một cái mới nếu đó là một mã thông báo không đúng, nhưng trong trường hợp đó, nó không nên là không đồng bộ. Tôi chỉ không xóa mã thông báo làm mới khi sử dụng?
Bất kỳ trợ giúp nào sẽ tuyệt vời, tôi cảm thấy đây là lỗ hổng lớn cuối cùng trong sự hiểu biết của tôi. Cảm ơn!
kiểm tra https://github.com/caolan/async này –