em cấu hình bị lỗi Cannot resolve configuration property 'jwt.valid-duration' thì phải làm sao anh
@manhmafia3 ай бұрын
video nào cũng thả like luôn
@TiFu-mi8im5 ай бұрын
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 ạ
@DevteriaChannel5 ай бұрын
Vì ở đây mình đang muốn logout thì sẽ không thể refresh được token với cái token đấy.
@khanhtoan8278 ай бұрын
cho em hỏi chỗ fresher token thì như anh setup thì phải tồn tại 120s sao lại 20s ạ
@DevteriaChannel8 ай бұрын
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.
@khanhtranphuc51935 ай бұрын
@@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 ạ
@locduongmy95268 ай бұрын
Cảm ơn những kiến thức bổ ích từ anh 🎉
@tumo76728 ай бұрын
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.25267 ай бұрын
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 ạ !
@tumo76727 ай бұрын
@@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Ай бұрын
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?
@minhquang78982 күн бұрын
Tại sao lại phá vỡ ý nghĩa vậy bạn?
@atNguyen-nd1gg2 ай бұрын
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 ạ
@DevteriaChannel2 ай бұрын
Đúng rồi em
@Neiht983 ай бұрын
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 ạ
@DevteriaChannel3 ай бұрын
Em xem lại video mastruct nhé, dùng Mapstruct map cho nhanh
@lienchikhang42245 ай бұрын
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
@benamngungoc7978 ай бұрын
A ơi có tích hợp đăng nhập bằng google , facebook vào spring boot api đc ko ạ?
@DevteriaChannel8 ай бұрын
Sắp tới anh sẽ làm về chủ đề đó nhé. Hold on.
@benamngungoc7978 ай бұрын
@BaoNguyen-lz4cb8 ай бұрын
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 ạ
@DevteriaChannel8 ай бұрын
Đó 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.
@hahachannel73238 ай бұрын
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 ạ ?
@DevteriaChannel8 ай бұрын
Đú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.
@hominhnhutfplhcm28778 ай бұрын
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 ạ
@DevteriaChannel8 ай бұрын
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.
@tuano72718 ай бұрын
Series này a có sử dụng redis ko ạ e muốn hc cái này mà k hiểu lắm
@DevteriaChannel8 ай бұрын
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ó.
@trunghieunguyen77714 ай бұрын
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
@DevteriaChannel4 ай бұрын
Một token chỉ được refresh một lần thôi em, đó là có chủ đích chứ kg phải lỗi nhé.
@trunghieunguyen77714 ай бұрын
@@DevteriaChannel dạ em cảm ơn ạ
@peternguyen71535 ай бұрын
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 😄😄😄
@thaiam89468 ай бұрын
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 ạ
@DevteriaChannel8 ай бұрын
Anh bật chế độ tự tạo shema luôn rồi nên không cần script db nha e.
@hungdomanh66535 ай бұрын
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
@nguyenthanhloc387823 күн бұрын
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
@trananhquang8 ай бұрын
phần tiếp theo của series này anh định làm về chủ để gì thế anh
@DevteriaChannel8 ай бұрын
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.
@trananhquang8 ай бұрын
@@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 ý ạ
@DevteriaChannel8 ай бұрын
Cảm ơn ý tưởng của em. Anh sẽ suy nghĩ về điều đó.
@vuilenemoi8 ай бұрын
a có thể làm thêm 1 vài phần như send otp,mail chat bot đi a
@DevteriaChannel8 ай бұрын
Thanks em, đó cũng là những phần thiết yếu, có thời gian anh sẽ bổ sung thêm.
@huyhoangmai75868 ай бұрын
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 ạ
@DevteriaChannel8 ай бұрын
Thanks em, chủ đề hay, anh sẽ cân nhắc về việc này.