Tôi đang cố gắng bọc đầu xung quanh OAuth2 và Perl (ví dụ: Net :: OAuth2) - cụ thể, thiết lập API RESTful cho cơ sở dữ liệu và ứng dụng sử dụng nó.Làm thế nào để bạn viết một máy chủ OAuth2 trong Perl?
Perl Oauth2 package dẫn tôi đến Net :: OAuth2.
Như gần như tôi có thể hình dung, có một vài điều tôi cần phải làm (hãy sửa lại cho tôi nếu tôi tắt trong cỏ dại ở đâu đó):
- Server-side: xây dựng các máy chủ REST của (hiện đang chơi với mojolicious cho điều này), mà nói chuyện với cơ sở dữ liệu.
- Server-side: xây dựng máy chủ xác thực/uỷ quyền (??)
- Khách hàng ứng dụng: sử dụng WWW :: mechanize (hoặc một số ví dụ) để nói chuyện với các máy chủ REST của
Trong đầu tôi, đây là cách hoạt động:
- ứng dụng client có khóa API (? đăng ký với máy chủ (REST máy chủ Auth server), và “nướng trong” cho khách hàng)
- người dùng có một mục nhập (username và mật khẩu) trong một bảng trong cơ sở dữ liệu trên máy chủ
- người dùng kích hoạt ứng dụng khách và cố truy cập tài nguyên được bảo vệ (nói để cập nhật hàng) (ví dụ: bằng cách chọn tùy chọn trình đơn "làm điều này" trong ứng dụng khách; khách hàng dịch đó vào API REST URI, ví dụ như http://the.rest.server/api/thisthing)
- máy chủ chuyển hướng khách hàng để() chút xác thực/uỷ quyền của máy chủ
- máy chủ, khách hàng, và người sử dụng làm một điệu nhảy OAuth ma thuật để xác thực người dùng
- máy chủ, ứng dụng khách và người dùng thực hiện một điệu nhảy OAuth ma thuật khác để đảm bảo người dùng được phép xem tài nguyên đó URI
- nếu mọi thứ đều tốt, máy chủ sẽ chuyển hướng khách hàng đến URI tài nguyên được yêu cầu ban đầu bất cứ điều gì auth parms là cần thiết).
Đó có phải là đánh giá hợp lý về quy trình không?
Nếu có, sẽ có ý nghĩa hơn khi có "xác thực/ủy quyền" như một phần của máy chủ REST hoặc máy chủ hoàn toàn riêng biệt? (trên cùng một phần cứng).
Net::OAuth2::Profile::WebServer giải thích độc đáo những gì phải xảy ra ở phía ứng dụng khách.
Các thử nghiệm trong http://cpansearch.perl.org/src/MARKOV/Net-OAuth2-0.55/t/ (trừ khi tôi là thực sự thiếu thứ gì đó) đang làm việc với Net :: Hồ sơ máy chủ web OAuth2, một lần nữa sẽ là “ứng dụng khách”. Có các ví dụ khác để viết máy khách - kết nối với máy chủ OAuth2 hiện có, chẳng hạn như công cụ Google API - nhưng tôi không thể tìm thấy ví dụ về cách viết máy chủ .... (Tôi sẵn sàng RTFM) , nếu tôi có thể tìm thấy các con trỏ ... được đánh giá cao!)
Cảm ơn, divyanshm - có ý nghĩa. – bibliophylum
Tôi cũng đã tìm thấy mô-đun Perl cũ hơn (không bị ảnh hưởng?): [OAuth :: Lite :: Server] (http://search.cpan.org/~lyokato/OAuth-Lite-1.31/lib/OAuth/Lite /Server/mod_perl2.pm) ... tôi nghĩ tôi sẽ tham chiếu nó ở đây cho độc giả trong tương lai. – bibliophylum