Xác thực JWT với WP - Cách tiếp cận


8

Chúng tôi đang sử dụng JWT ( JSON Web Token ) để xác thực ứng dụng WordPress của chúng tôi với một dịch vụ bên ngoài. Dòng chảy hiện tại chúng tôi nghĩ là như thế này:

  1. Người dùng đăng nhập vào trang mẹ
  2. Trang web mẹ gửi yêu cầu POST với thông tin người dùng và mã thông báo JWT đến trang web WordPress
  3. Trang web WP lưu trữ mã thông báo JWT
  4. Mã thông báo được kiểm tra hết hạn mỗi khi người dùng truy cập trang mới và nếu mã thông báo hết hạn, người dùng sẽ được chuyển hướng đến trang mẹ để đăng nhập lại.

Những câu hỏi của tôi:

  1. Đây có phải là cách tiếp cận đúng?
  2. Làm cách nào để lưu trữ mã thông báo JWT? Một cái bánh quy? Hoặc trong cơ sở dữ liệu, với thông tin người dùng là định danh duy nhất? Lưu ý: Người dùng sẽ không được đăng ký trên trang WP.
  3. Làm thế nào để tôi kiểm tra hết hạn?

Có một plugin WP cho JWT nhưng không có tài liệu nào cho nó, do đó tôi không chắc liệu nó có phục vụ mục đích của tôi không.


hmmm wtf là jwt?
Đánh dấu Kaplun

Đã thêm các liên kết có liên quan. Kiểm tra.
Rutwick Gangurde

ok, bây giờ tôi biết JWT là gì Tôi vẫn không hiểu câu hỏi và tại sao nó lại cụ thể cho wordpress. Không có hướng dẫn thực hành tốt nhất cho nó? Dù sao các đề xuất plugin / thư viện đều lạc đề ....
Đánh dấu Kaplun

1
Tôi không muốn một đề xuất plugin, tôi đang viết mã của riêng tôi. Đã xóa dòng cuối cùng khiến bạn nghĩ như vậy.
Rutwick Gangurde

Câu trả lời:


8

Điều này hiển thị như là một thông báo do upvote. Đây là cách tôi giải quyết nó.

  1. Điểm cuối được mã hóa trong ứng dụng mà tôi phải xác thực bằng cách chuẩn bị mã thông báo.
  2. Mã thông báo phải ở định dạng được chỉ định.
  3. Sau đó, nó phải được mã hóa cơ sở 64 và mã hóa băm.
  4. Trình wp_initxử lý nên được sử dụng để xử lý yêu cầu POST được gửi bởi điểm cuối, để trích xuất mã thông báo.
  5. Khóa sẽ được chia sẻ thông qua một số cách khác, được sử dụng để giải mã.
  6. Khi mã thông báo được trích xuất, hãy so sánh nó với mã thông báo được tạo cục bộ với cùng thông tin.
  7. Lưu nó trong một cookie và kiểm tra nó trên mỗi lần truy cập trang. Bạn có thể hết hạn sau một thời gian hoặc tiếp tục tăng lát thời gian trên mỗi lần truy cập trang.

Điểm cuối có thể bằng bất kỳ ngôn ngữ nào. Ngoài ra đây là dòng chảy chung của nó, bạn có thể sử dụng nó bất cứ nơi nào bạn muốn.


0

Việc kích hoạt Đăng nhập một lần trong WordPress khiến tôi mất hơn 18 giờ đấu tranh nhưng có thể bạn chỉ mất vài phút:

Về cơ bản, bạn sẽ muốn sử dụng https://wordpress.org/plugins/wp-force-login/ và một phiên bản sửa đổi của https://as.wordpress.org/plugins/jwt-authenticator/ và sau đó tạo auth điểm cuối được bảo vệ trên trang web chính của bạn tạo JWT (Mã thông báo Web JSON) và chuyển hướng quay lại URL đặc biệt của trang web WordPress của bạn.

Xem mã đầy đủ ở đây .

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.