Khóa học Java spring boot 3: #18 refresh JWT token (phần 2) align với Oauth2

  Рет қаралды 6,073

Devteria

Devteria

Күн бұрын

Пікірлер: 45
@HienTran-bn5zq
@HienTran-bn5zq 3 күн бұрын
em cấu hình bị lỗi Cannot resolve configuration property 'jwt.valid-duration' thì phải làm sao anh
@manhmafia
@manhmafia 3 ай бұрын
video nào cũng thả like luôn
@TiFu-mi8im
@TiFu-mi8im 5 ай бұрын
anh ơi tạo sao logout lại dùng thời gian hết refresh mà không phải là thời gian hết hạn của token ạ
@DevteriaChannel
@DevteriaChannel 5 ай бұрын
Vì ở đây mình đang muốn logout thì sẽ không thể refresh được token với cái token đấy.
@khanhtoan827
@khanhtoan827 8 ай бұрын
cho em hỏi chỗ fresher token thì như anh setup thì phải tồn tại 120s sao lại 20s ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
20 giây là thời gian có hiệu lực của token, còn 120s là thời gian em có thể dùng token đó để refresh lấy 1 token mới. Nên sau khi em refresh thì token mới nó cũng sẽ có hiệu lực 20s thôi.
@khanhtranphuc5193
@khanhtranphuc5193 5 ай бұрын
@@DevteriaChannel thế mình có nên tăng thời gian hiệu lực của refreshToken không hay vẫn để giống thời gian của token bình thường ạ
@locduongmy9526
@locduongmy9526 8 ай бұрын
Cảm ơn những kiến thức bổ ích từ anh 🎉
@tumo7672
@tumo7672 8 ай бұрын
Nếu implement refresh token theo cách này thì không đảm bảo security, vì lỡ bị mất access token thì hacker có thể loop interval để refresh token forever
@linhnd.2526
@linhnd.2526 7 ай бұрын
Bác cho em hỏi có cách nào có thể khắc phục được case loop interval này không ạ !
@tumo7672
@tumo7672 7 ай бұрын
@@linhnd.2526 Trả về 2 tokens khác nhau, access token và refresh token. Vì access token được gửi đi thường xuyên nên khả năng leak cao hơn refresh token, nếu lỡ bị mất thì sau thời gian expire sẽ không dùng được nữa
@trietquach7391
@trietquach7391 Ай бұрын
bạn ơi cho mình hỏi có phải trong video này bạn ùng issueTime của token hiện tại để tính thời hạn làm mới. Nếu Access Token được làm mới liên tục, issueTime sẽ luôn được cập nhật, dẫn đến tình trạng refresh token không bao giờ hết hạn nếu người dùng tiếp tục làm mới token trước khi hết hạn. Điều này phá vỡ ý nghĩa của Refresh Token?
@minhquang7898
@minhquang7898 2 күн бұрын
Tại sao lại phá vỡ ý nghĩa vậy bạn?
@atNguyen-nd1gg
@atNguyen-nd1gg 2 ай бұрын
refreshable-duration là khoảng thời gian token có thể được refresh hả anh quá thời gian đó là không được refresh đúng kh ạ
@DevteriaChannel
@DevteriaChannel 2 ай бұрын
Đúng rồi em
@Neiht98
@Neiht98 3 ай бұрын
Cảm ơn anh về những video dạy về Spring Boot rất hay nhưng anh có thể cho em một lời khuyên được không?? em cũng đang làm một app bán hàng để thêm vào CV nhưng mà chỗ repo em muốn dùng câu Query SQL để lấy những cột cần thiết nhưng chỗ kết quả trả về lại là một List thay vì một Listnhư em muốn, vậy thì có cách nào để convert chỗ này không ạ, hiện tại em đang map thủ công qua, mong anh cho em hướng giải quyết chỗ này. Em cảm ơn ạ
@DevteriaChannel
@DevteriaChannel 3 ай бұрын
Em xem lại video mastruct nhé, dùng Mapstruct map cho nhanh
@lienchikhang4224
@lienchikhang4224 5 ай бұрын
anh cho e hỏi nếu e muốn implement thêm refreshToken để refresh thì flow như sau: khi login => tạo refreshToken với jwtId, sau đó tạo accessToken với 1 claim refreshId chính là jwtId của refreshToken. khi logout => đưa jwtId của refreshToken vào blacklist khi gửi request => ngoài kiểm tra accessToken bằng signature, kiểm tra thêm claim refreshId của accessToken có tồn tại trong blacklist hay không, nếu có => từ chối. A nghĩ sao về flow như này ạ. Tks a
@benamngungoc797
@benamngungoc797 8 ай бұрын
A ơi có tích hợp đăng nhập bằng google , facebook vào spring boot api đc ko ạ?
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Sắp tới anh sẽ làm về chủ đề đó nhé. Hold on.
@benamngungoc797
@benamngungoc797 8 ай бұрын
@BaoNguyen-lz4cb
@BaoNguyen-lz4cb 8 ай бұрын
cho em hỏi tại sao lại không tạo riêng refreshtoken mà phải lấy accesstoken cũ để làm refreshtoken vậy ạ? Ví dụ như login thành công thì response sẽ có cả accessToken và refreshtoken ấy ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Đó chính là cách hoạt động của Oauth2. Tuy nhiên trong phạm vi của khoá học này làm như vậy là cũng đầy đủ capability rồi. Em có thể tự mình implement như cách em nói vì nó cũng hoàn toàn đúng theo pattern.
@hahachannel7323
@hahachannel7323 8 ай бұрын
em có thắc mắc 1 trường hợp như: user đã đăng nhập thành công, trong khoảng thời gian đó admin xóa tài khoản user, thì user vẫn request được resource phải ko ạ ? Vì e thấy trong hàm verify token, chưa có phần check user còn tồn tại trong DB hay ko. Và 1 phần nữa là trong security có các phần như SecurityContextHoler, UserDetailsService, ProviderManager nó có được sử dụng cùng với Jwt ko ạ ?
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Đúng rồi em, còn rất nhiều những vấn đề khác xung quanh, tùy thuộc vào business em có thể implement thêm, mà ở đây anh chưa đề cập đến hết được. SecurityContextHolder và ProviderManager luôn luôn có sẵn trong Spring Security ở đây mình chỉ đang sử dụng nó chứ chưa có customize. Còn UserDetailsService thì đối với JWT thì không cần sử dụng đến, vì hầu như thông tin detail của user nó không nằm ở service của mình. Em có thể thấy vấn đề này khi đi sâu vào series microservices.
@hominhnhutfplhcm2877
@hominhnhutfplhcm2877 8 ай бұрын
em thấy còn một cách xác thực khác từ UserDetail ạ, vậy trong dự án mình dùng mỗi cái xác thực Jwt thôi được không, hay dùng cả 2 hoặc là 1 trong 2 ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
UserDetail thường dùng để xác thực BasicAuthen thôi, Web service bây giờ chủ yếu sử dụng JWT để đảm bảo an toàn. Vì việc cứ yêu cầu user gửi user/pass hoài vừa gây bất tiện vừa kém bảo mật.
@tuano7271
@tuano7271 8 ай бұрын
Series này a có sử dụng redis ko ạ e muốn hc cái này mà k hiểu lắm
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Series này không có nha e, nhưng thấy cũng có nhiều bạn muốn học Redis nên anh sẽ tìm một use case phù hợp để làm video về nó.
@trunghieunguyen7771
@trunghieunguyen7771 4 ай бұрын
Mình chỉ refresh token 1 lần, refresh liên tiếp sang lần 2 lỗi thì mình phải login lấy token khác thì đó có phải lỗi mình cần sửa không anh
@DevteriaChannel
@DevteriaChannel 4 ай бұрын
Một token chỉ được refresh một lần thôi em, đó là có chủ đích chứ kg phải lỗi nhé.
@trunghieunguyen7771
@trunghieunguyen7771 4 ай бұрын
@@DevteriaChannel dạ em cảm ơn ạ
@peternguyen7153
@peternguyen7153 5 ай бұрын
Anh em nếu thấy copy token trong postman mệt quá thì có thể làm theo cách này nha 😁: - Tạo 1 biến environment token - Viết 1 đoạn script auto set biến token mới mỗi khi request đến endpoint "/token" hoặc "/refresh" để lấy token mới, đây là script của mình các bạn tham khảo nha ^^: var data = pm.response.json() pm.environment.set("token", data.result.token) - Sau đó xài biến đó cho các endpoint sử dụng token ở Auth hoặc Body như này: {{token}} Happy coding 😄😄😄
@thaiam8946
@thaiam8946 8 ай бұрын
Em cảm ơn anh ạ anh ơi db của project này anh có thể chia sẻ được không ạ em clone về mà không có db ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Anh bật chế độ tự tạo shema luôn rồi nên không cần script db nha e.
@hungdomanh6653
@hungdomanh6653 5 ай бұрын
expireTime của token cũ khi lưu vào trong invalidToken em nghĩ nên để là thời điểm hết refreshable, nếu để là thời điểm hết hạn của token thì ngta vẫn có thể lấy token cũ đó để refresh được
@nguyenthanhloc3878
@nguyenthanhloc3878 23 күн бұрын
yeah sure, khá hợp lý, case đó sẽ xảy ra khi để thời gian job schedule dọn token trong db ngắn hơn thời gian hết hạn refreshable
@trananhquang
@trananhquang 8 ай бұрын
phần tiếp theo của series này anh định làm về chủ để gì thế anh
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Phần cơ bản của spring boot thì xong rồi. Tiếp theo chắc a sẽ làm phần nâng cao về OAuth2, cách integrate Oauth2 với hệ thống identity của mình.
@trananhquang
@trananhquang 8 ай бұрын
@@DevteriaChannel à, em có đề xuất là anh có thể làm về series system design và details design trong thời gian tới không ạ, kiểu những cái essential ở step design ý ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Cảm ơn ý tưởng của em. Anh sẽ suy nghĩ về điều đó.
@vuilenemoi
@vuilenemoi 8 ай бұрын
a có thể làm thêm 1 vài phần như send otp,mail chat bot đi a
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Thanks em, đó cũng là những phần thiết yếu, có thời gian anh sẽ bổ sung thêm.
@huyhoangmai7586
@huyhoangmai7586 8 ай бұрын
Ad hướng dẫn về gRPC được không ạ? E thấy ngta hay dùng để giao tiếp giữa các service với nhau trong microservice mà spring chưa có thư viện chính thức, mong ad làm video hướng dẫn ạ
@DevteriaChannel
@DevteriaChannel 8 ай бұрын
Thanks em, chủ đề hay, anh sẽ cân nhắc về việc này.
The Lost World: Living Room Edition
0:46
Daniel LaBelle
Рет қаралды 27 МЛН
Spring Security - Refresh token
26:20
Bouali Ali
Рет қаралды 37 М.
1. Luồng xử lý Authentication với JWT, cơ chế Refresh Token tự động | TrungQuanDev
18:51
TrungQuanDev - Một Lập Trình Viên
Рет қаралды 24 М.
CORS Policy Là Gì? | Cách Xử Lý Khi Bị Chặn Bởi CORS
1:08:43