Spring Boot & Spring Security: JWT Authentication & Authorisation [NEW]

  Рет қаралды 17,951

AlphaCode

AlphaCode

Жыл бұрын

Video này về cách triển khai xác thực và phân quyền JWT trong ứng dụng Spring Boot 3.0 bằng Spring Security 6 và cơ sở dữ liệu Postgres để lưu trữ thông tin đăng nhập của người dùng.
Nếu thấy hay và hữu ích bạn có thể ủng hộ cho mình để ra nhiều video hay hơn nhé.
Vietinbank: 104868722830
Momo: 0971858758 Nguyễn Thành Long
-------------------------
Link group học code: / codevui
Link facebook cá nhân: https: / thanhlong.kame
Mình và team nhận code Web, App, Tool, Game, bài tập lớn, đồ án... Ngoài ra cũng nhận training cho các bạn cần cải thiện kiến thức.Các ngôn ngữ lập trình requirement:
+C/C++, Java, C#, Ruby, Python ,Golang, JS.
+Framework backend: Springboot(java), Asp.net(c#), Ruby on Rails.
+Framework frontend: Bootstrap, Jquery, Angular, ReactJs.
+Cơ sở dữ liệu, cấu trúc dữ liệu và giải thuật.
+Tiếng Anh, tiếng Nhật.
AlphaTeam sẽ support IT cũng như tiếng Anh và tiếng Nhật cho các bạn.

Пікірлер: 46
@riseabove-thepowerwithin
@riseabove-thepowerwithin Жыл бұрын
Thay vì dùng field injection thì bạn dùng constructor injection mới là best practice nhé !
@74.nguyenvantung74
@74.nguyenvantung74 8 ай бұрын
em nghĩ a nên vừa code vừa giảng về luồng hoạt động giải thích thêm về các thứ mà a đang viết chứ a tập trung code quá mn xem mà kh hiểu cách a xử lý các a viết thì mn sẽ k follow hết bài được nên e nghĩ a nên có giải thích về code. e có góp ý với a như vậy
@congdatt
@congdatt Жыл бұрын
Mình nghĩ bạn nên để thêm time-line để tiện follow á
@phuocduongai7043
@phuocduongai7043 Жыл бұрын
Mình bị lỗi 403 mà chưa sửa được, không biết ai có thể giúp mình được không :((
@pqpqpq367
@pqpqpq367 10 ай бұрын
cho em hỏi từ phần Class SecurityConfig em làm theo thiết lập phân quyền theo video thì dòng nào cũng lỗi và dẫn đến toàn hệ thống lỗi luôn
@rayensaadallah8991
@rayensaadallah8991 10 ай бұрын
is therer a github repo for thuis project ?
@user-xx6tr2ux2l
@user-xx6tr2ux2l 3 ай бұрын
Mình làm giống y với video mà không hiểu sao lỗi 403 với cảnh báo ": Cache miss for REQUEST dispatch to '/api/v1/auth/login' (previous null). Performing MatchableHandlerMapping lookup. This is logged once only at WARN level, and every time at TRACE. " không biết fix sao ?
@vuthien9342
@vuthien9342 Жыл бұрын
mình cũng đang tìm hiểu phần security + jwt để xác thực, phân quyền, nhưng mỗi nơi một kiểu generate token, chưa kể còn refresh token nữa....dù gì cũng cảm ơn video chủ thớt để tham khảo
@thanhnamtruong9831
@thanhnamtruong9831 Жыл бұрын
bạn rất giống mình ở thời điểm hiện tại ! học về spring security và jwt thì rất đơn giản nhưng bắt đầu sang phân quyền thì thực sự chả khác gì từ học bảng chữ cái lên toán cao cấp cả , tìm nhiều nguồn trên internet thì rất nhiều nhưng vấn đề bám sát thực tế là người học cần biết nó chạy như thế nào và luồng đi cơ bản thì rất hạn chế và thêm nữa thì code xong có work được ko là một chuyện khác nữa !
@vuthien9342
@vuthien9342 Жыл бұрын
@@thanhnamtruong9831 à mình hiểu tâm trạng của bạn vì mình vừa vượt qua cảm giác đó cách đây 1 tuần, cách mình sử dụng jwt để phân quyền đơn giản hơn, mình vừa kết hợp spring security để phân quyền, chỉ sử dụng jwt để xác thực thôi, có nghĩa khi filter lọc ra được chuỗi token, thì mình sẽ lấy luôn user của chuỗi đó đi xác thực
@thanhnamtruong9831
@thanhnamtruong9831 Жыл бұрын
@@vuthien9342 bạn có thể cho mình xin source code để tham khảo được ko ạ
@juneutf
@juneutf Жыл бұрын
Bác nào làm đc chưa. Hướng dẫn em với
@thanhnamtruong9831
@thanhnamtruong9831 Жыл бұрын
@@vuthien9342 chưa bạn à, m đang trong quá trình nghiên cứu sâu hơn , bạn có muốn hợp tác cùng mình tìm hiểu vấn đề này ko thì mình sẽ ném số zalo để trao đổi sâu hơn
@user-pb7my8lm8u
@user-pb7my8lm8u Жыл бұрын
Cho em xin source tham khảo được kh ạ
@DiiKhanh
@DiiKhanh Жыл бұрын
co source code khong v a
@NguyenQuangVinh-ce1eh
@NguyenQuangVinh-ce1eh Жыл бұрын
em cũng bị lỗi 403, nhờ anh gợi ý em fix được rồi ạ
@HoangTuanNguyen-em6ij
@HoangTuanNguyen-em6ij 4 ай бұрын
bạn fix như nào z?
@xuanmanhdao
@xuanmanhdao Жыл бұрын
Chào bạn, mình có thắc mắc nếu làm như cách của bạn thì sẽ không tạo table token trong database vậy làm chức năng đăng xuất và refreshToken bằng cách nào? Rất mong nhận được giải đáp
@alphacode3341
@alphacode3341 Жыл бұрын
Bạn có thể xem ở 1:10:53 mình có tạo access token và refresh token song song với nhau đó, còn token client nhận được khi login thì sẽ được lưu trên local storage(cái này do fe xử lý), khi bạn muốn logout chỉ cần remove chuỗi token này thôi, nhưng làm như vậy sẽ có 1 nhược điểm là chỉ logout ở trên 1 thiết bị, lúc này thì có thể xử lý như bạn nói đó là lưu token trên database để khi logout có thể đồng bộ trên nhiều thiết bị. Không biết có đúng ý bạn không
@xuanmanhdao
@xuanmanhdao Жыл бұрын
​@@alphacode3341 Cảm ơn bạn đã phản hồi. Mình theo dõi video của bạn thì ở phần tạo hàm generateRefreshToken bạn sẽ tạo ra refreshToken chứa thông tin là email và ngày hết hạn refreshToken theo mình hiểu thì nếu làm cách này thì cần thêm luồng xử lý ở trong class JwtAuthenticationFilter hàm doFilterInternal sẽ bắt xem trong token gửi lên có keyword roles không vì khác biệt giữa refreshToken và token là refreshToken không chứa roles nên mình có thể lợi dụng điểm này để tạo token mới từ refreshToken. Còn đối với chức năng logout dù trường hợp logout ở 1 thiết bị thì khi sử dụng SecurityContextHolder.clearContext(); ở trong backend thì vẫn là không đủ. Vì token cũ đó vẫn là token hợp lệ nên ở phía client vẫn có thể dùng token đó để truy cập lại được nên mình không nghĩ ra cách nào khác ngoài việc tạo bảng token để bắt theo status của token. Rất mong bạn xem giúp cách hiểu này của mình có ổn không?
@tapquenmoitinhdau
@tapquenmoitinhdau 7 ай бұрын
anh cho em hỏi là có thể vừa tích hợp api gateway vs security trong cùng 1 service được không ạ. Rất mong anh trả lời
@alphacode3341
@alphacode3341 7 ай бұрын
Được em nhé, mình có thể tích hợp security ở ngay trong api gateway để phân quyền và điều phối đến service quy định
@tapquenmoitinhdau
@tapquenmoitinhdau 7 ай бұрын
@@alphacode3341 em cám ơn a đã reply ạ. Hiện tại em đang triển khai riêng thành 2 service api gateway và auth service. Tuy nhiên em thấy hơi tù khi toàn bộ request cần check quyền thì đi vào api gateway rồi lại forward sang auth để verify token. Nhận đc kết quả từ auth thì gateway điều phối đến resource tương ứng. Rất mong a cho e lời khuyên để tối ưu thêm ạ
@nguyentuantruong4815
@nguyentuantruong4815 Жыл бұрын
tại sao a ko dùng các phương thức của JPA để lấy roles mà dùng câu query sql z a
@thanhnamtruong9831
@thanhnamtruong9831 Жыл бұрын
một câu hỏi rất hay ! mình cũng đang có câu hỏi tương tự bạn khi thấy bạn đó dùng cách hết sức thủ công là dùng query sql trong java mà ko dùng các thư viện mà bên springboot có hỗ trợ là jpa bạn bảo , thực sự thì học spring securiy và jwt thì đơn giản nhưng sang mảng phân quyền thì khá là rối rắm nên tìm tài liệu chi tiết chính thông và quan trọng work được thì mình đang gặp khó khăn !
@lethaibinh9638
@lethaibinh9638 Жыл бұрын
@@thanhnamtruong9831 mình cũng đang tự học spring security, lập group zalo trao đổi k mấy bạn.
@NguyenPhuc-pt8bh
@NguyenPhuc-pt8bh 10 ай бұрын
@@lethaibinh9638 minh ke voi
@QuanNguyen-kh7ix
@QuanNguyen-kh7ix 10 ай бұрын
vì bạn ấy thích thôi :)
@lichnguyenviet7314
@lichnguyenviet7314 7 ай бұрын
a ơi e chỉ cần chức năng đăng nhập sẽ gen ra access token thì có cần thêm bảng role không ạ
@alphacode3341
@alphacode3341 7 ай бұрын
Không em nhé
@lichnguyenviet7314
@lichnguyenviet7314 7 ай бұрын
@@alphacode3341 là mình bỏ phần liên quan đến bảng role và trong những hàm tạo user thì k cần mấy cái dòng roles à a
@ucthanhphamnguyen5761
@ucthanhphamnguyen5761 Жыл бұрын
Cho em hỏi ở 13:04 , thì sao em dùng list.of kh được mà báo lỗi v ạ , mặc dù em đã import java.util.List vào r
@alphacode3341
@alphacode3341 Жыл бұрын
List.of ko phải list.of e nhé
@ucthanhphamnguyen5761
@ucthanhphamnguyen5761 Жыл бұрын
@@alphacode3341 Em tự tìm hiểu dc là do JDK của em chỉ là phiên bản 8 , còn List.of là cho phiên bản 9 nên hiện tại em đã fix dc lỗi đó r.Cám ơn anh đã trả lời.
@tienjpvlog6399
@tienjpvlog6399 Жыл бұрын
Sao em code giống anh lại bị lỗi 403 nhỉ
@guitaramateur123
@guitaramateur123 Жыл бұрын
Bạn comment đoạn : //.requestMatchers(HttpMethod.OPTIONS, "/**").permitAll() trong SecurityConfig class nhé. Mình cũng bị lỗi comment lại thì chạy ngon Sửa .requestMatchers("/api/v1/auth").permitAll() -> .requestMatchers("/api/v1/auth/**").permitAll()
@thucvu2001
@thucvu2001 Жыл бұрын
mình cũng thế, bạn fix được chưa?
@alphacode3341
@alphacode3341 Жыл бұрын
Em sửa lại file security config nhé, tài liệu có thể xem ở Baeldung
@tienjpvlog6399
@tienjpvlog6399 Жыл бұрын
@@thucvu2001 Được rồi nhé
@ngocdungbui896
@ngocdungbui896 Жыл бұрын
@@thucvu2001 bạn sửa được chưa ạ , mình cũng dính lỗi đó
Auth: 03 - JWT là gì và những điều cần biết 🎉
11:44
Easy Frontend
Рет қаралды 44 М.
Can you beat this impossible game?
00:13
LOL
Рет қаралды 55 МЛН
Как быстро замутить ЭлектроСамокат
00:59
ЖЕЛЕЗНЫЙ КОРОЛЬ
Рет қаралды 12 МЛН
1 класс vs 11 класс (неаккуратность)
01:00
Complete Spring Security with JWT Authentication | Spring Security 6 | Securing Spring Boot
3:45:03
Spring Security Architecture Explained
14:41
Amigoscode
Рет қаралды 96 М.
10 Spring and Spring Boot Common Mistakes You Need To STOP
15:49
Amigoscode
Рет қаралды 138 М.
Spring Boot + Spring Security + JWT from scratch - Java Brains
39:29
Can you beat this impossible game?
00:13
LOL
Рет қаралды 55 МЛН