sách gpt4 ăn đã đi

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

In lại Tác giả: qq735679552 Thời gian cập nhật: 28-09-2022 22:32:09 33 4
mua khóa gpt4 giày nike

CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.

Bài đăng trên blog CFSDN này sẽ đưa nó vào hoạt động! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào? Được tác giả sưu tầm và biên soạn. Nếu các bạn quan tâm tới bài viết này thì nhớ like nhé.

Thư mục như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Tại sao bạn cần loại ủy quyền tùy chỉnh?

Khi giới thiệu các điểm kiến ​​thức cơ bản của OAuth2.0 trước đó, chúng tôi đã giới thiệu 4 loại ủy quyền được hỗ trợ như sau:

  • Chế độ mã ủy quyền
  • Chế độ đơn giản hóa
  • chế độ khách hàng
  • chế độ mật khẩu

Trong thực tế sản xuất, bốn loại ủy quyền trên đơn giản là không đủ. Ví dụ: các loại ủy quyền phổ biến như sau:

  • Xác thực WeChat
  • Chứng nhận QQ
  • Số điện thoại di động + mã xác thực xác thực
  • Xác thực mã xác minh đồ họa
  • Xác thực email

Do đó, chúng ta phải hiểu cách tùy chỉnh loại ủy quyền trong OAuth2.0, đây cũng là trọng tâm của bài viết này.

Ý tưởng thực hiện

Loại ủy quyền tùy chỉnh của Spring Security thực sự rất đơn giản. Điều chính là nắm vững ý tưởng. Sau đây là quy trình ủy quyền của chế độ mật khẩu, như được hiển thị bên dưới:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Theo sơ đồ trên, bạn có thể theo dõi mã nguồn và xem xét một số điểm quan trọng như sau:

  • Mỗi loại ủy quyền tương ứng với một lớp triển khai TokenGranter, lớp này xác định loại ủy quyền
  • Tất cả các lớp triển khai TokenGranter được lưu trữ thông qua bộ sưu tập tokenGranters trong CompositeTokenGranter.
  • Sau đó, xác định lớp triển khai TokenGranter nào được sử dụng cụ thể để xử lý ủy quyền bằng cách đánh giá tham số GrantType.
  • Mỗi phương thức ủy quyền tương ứng với một AuthenticationProvider
  • Lớp TokenGranter sẽ tạo một lớp triển khai AuthenticationToken mới, chẳng hạn như UsernamePasswordAuthenticationToken và chuyển nó đến lớp ProviderManager.

Do đó, nếu bạn muốn tùy chỉnh loại ủy quyền, bạn phải xây dựng TokenGranter, AuthenticationProvider và AuthenticationToken của riêng mình.

Triển khai mã

Tiếp theo, xác định loại bằng phương thức đăng nhập là số điện thoại di động + mật khẩu: mobile_pwd và tự mình thực hiện phần còn lại.

1. Tùy chỉnh UserDetailService

Điều này tương tự như kiểu ủy quyền mật khẩu. Cần triển khai phương pháp truy vấn thông tin chi tiết của người dùng dựa trên số điện thoại di động từ cơ sở dữ liệu.

Xác định giao diện SmsCodeUserDetailService như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Chủ yếu nó là một phương thức LoadUserByMobile(), lớp triển khai như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

2. Tùy chỉnh AuthenticationToken

Tương tự như UsernamePasswordAuthenticationToken ở chế độ mật khẩu, hãy tùy chỉnh MobilePasswordAuthenticationToken để gói gọn số điện thoại di động và mật khẩu, như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

3. Tùy chỉnh TokenGranter

Mỗi loại ủy quyền tương ứng với một TokenGranter, xác định tên của loại ủy quyền, chẳng hạn như ResourceOwnerPasswordTokenGranter ở chế độ mật khẩu, trong đó GRANT_TYPE là mật khẩu.

Tùy chỉnh MobilePwdGranter, sao chép bầu và bắt chước các thay đổi. Mã như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

4. Tùy chỉnh Nhà cung cấp xác thực

Lớp này là lớp xử lý thực sự. Sau khi chuyển qua TokenGranter, AuthenticationProvider tương ứng sẽ được tìm thấy, sau đó các tham số sẽ được đưa ra để truy vấn thông tin tương ứng từ cơ sở dữ liệu (UserDetailService) để khớp.

Tùy chỉnh MobilePasswordAuthenticationProvider, mã như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

5. Đưa MobilePasswordAuthenticationProvider tùy chỉnh vào vùng chứa IOC

Ở đây, MobilePasswordAuthenticationProvider tùy chỉnh phải được đưa vào vùng chứa IOC. Nếu không được đưa vào, một ngoại lệ mà không có AuthenticationProvider nào có thể xử lý được sẽ được báo cáo.

Tạo SmsCodeSecurityConfig mới với mã sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Lưu ý: Do cấu hình bên ngoài được sử dụng nên điều này phải được chỉ định trong cấu hình chung.

6. Cấu hình chung của bảo mật chỉ định SmsCodeSecurityConfig

Vì nó được cấu hình riêng nên nó phải được chỉ định trong cấu hình chung để có hiệu lực.

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

7. Thêm vào bộ sưu tập CompositeTokenGranter

Bạn cần thêm loại ủy quyền tùy chỉnh vào bộ sưu tập CompositeTokenGranter. Tại đây, bạn cần sửa đổi mã trong lớp cấu hình (AuthorizationServerConfig) của trung tâm chứng nhận, như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

8. Thêm loại ủy quyền vào bảng oauth_client_details

Bảng oauth_client_details lưu trữ thông tin chi tiết về khách hàng. Bạn cần thêm các loại ủy quyền tùy chỉnh vào trường ủy quyền_grant_types trong hàng tài nguyên khách hàng tương ứng.

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Bài kiểm tra

Sau các bước trên, cấu hình đã hoàn tất. Bây giờ hãy kiểm tra và bắt đầu dịch vụ như sau:

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Thu thập mã nguồn

Loại ủy quyền chủ yếu dành cho các thay đổi đối với trung tâm xác thực (oauth2-cloud-auth-server).

Thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào?

Chen đã trực tiếp thay đổi phiên bản mã nguồn tích hợp Spring Security vào cổng trước đó.

Địa chỉ gốc: https://mp.weixin.qq.com/s/4XS3cIFR0UBtCW4TSKtEKg.

Bài cuối cùng là về thực chiến! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào? Bài viết này chỉ vậy thôi, nếu bạn muốn biết thêm về chiến đấu thực tế! Trung tâm xác thực microservice mở rộng chế độ ủy quyền để triển khai nhiều phương thức đăng nhập như thế nào? Về nội dung, vui lòng tìm kiếm các bài viết của CFSDN hoặc tiếp tục duyệt các bài viết liên quan. Tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .

33 4 0
qq735679552
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress