2013-04-30 24 views
7

Gần đây tôi đã suy nghĩ về cách để có được webframework/application-stack của mình ngay. Tôi đang dần dần chuyển sang scala và lập trình chức năng (đến từ Python với CherryPy). Vì vậy, nó là tự nhiên để nhìn vào chơi vì nó là khuôn khổ được hỗ trợ rộng rãi nhất (bây giờ mà ngay cả Typesafe đã thông qua nó). Vui lòng sửa tôi nếu tôi thiếu thứ gì đó ở đây.Xác thực (và không quốc tịch) với Khung chơi và Scala

Vì vậy, chơi thực sự đang nắm lấy ý tưởng về các ứng dụng web không trạng thái và tôi có một khoảng thời gian khó khăn bao quanh đầu của tôi xung quanh nó về mặt xác thực và ủy quyền. Bây giờ sau khi một số digging trực tuyến (The definitive guide to form-based website authentication) Tôi đã kết luận rằng xác thực và ủy quyền phải được thực hiện trên mỗi và mọi cuộc gọi đến phụ trợ của tôi (JSON-RPC hoặc bất cứ điều gì), nhận được từ ý tưởng cookie phiên cũ.

Bây giờ, cách tiếp cận tốt nhất để đạt được điều này với công nghệ hàng ngày là gì?

Và những gì về:

Tôi nghĩ về "đơn giản" DigestAuth vì nó được chứng minh và rộng rãi nhưng sau đó nó có cảm giác này giống với auth cơ bản cũ và gỉ.

Cảm ơn bạn!

Trả lời

0

Đối với tôi, tôi sử dụng điều này trong dự án hiện tại https://github.com/t2v/play20-auth, hoạt động tốt.

+0

Nó không thực sự yên tâm không? Dường như nó chỉ là một sửa chữa cho cookie xác thực không an toàn của riêng chơi. – AlessandroEmm

+0

@AlessandroMeyer Tôi có thể nói rằng nó gần như yên tĩnh nhưng không hoàn toàn yên tĩnh, như chúng ta biết là có nghĩa là không trạng thái và chúng ta không thể trộn nó cùng một lúc bởi vì "xác thực" là một trạng thái, nhưng mặt khác nó có thể được nhận ra trong các lớp khác nhau. – arussinov

+0

bạn nói đúng, nhưng phải xác thực mỗi lần (tiêu hóa hoặc auth cơ bản) sẽ thực sự vô quốc tịch và tôi đã tự hỏi nếu đây là một cách tiếp cận hợp lý. – AlessandroEmm

2

Bạn có thể dễ dàng nhận được giải pháp công việc. Nhưng, không phải là tốt nhất. Dường như lợi thế của trạng thái vô quốc tịch là không cần chia sẻ phiên. Dễ dàng mở rộng quy mô. Tuy nhiên, làm xác thực cho mỗi cuộc gọi là tốn kém. Đôi khi thậm chí thêm một số cơ sở dữ liệu thêm đọc ops. Điều này sẽ làm chậm phản hồi. Nếu bạn muốn lưu trữ kết quả xác thực, thì sẽ không có sự khác biệt với giải pháp phiên trạng thái. Theo ý kiến ​​của tôi. Bạn không thể thực hiện Kiểm soát Truy cập Dựa trên Vai trò theo cách không quốc tịch!

+0

Có nghĩa là đăng nhập dựa trên vai trò là không có trong cái gọi là "web-dev" hiện đại? – AlessandroEmm

+0

Bạn có thể đặt trạng thái trong Công cụ bộ nhớ có thể sao chép nhanh như REDIS. sau đó mỗi quá trình chơi đơn là không trạng thái, giúp giảm bớt quy mô ngang. –

Các vấn đề liên quan