2013-02-20 41 views
5

Tôi có ứng dụng web Play 2.0.4 sử dụng SecureSocial để cho phép người dùng đăng nhập thông qua các nhà cung cấp bên thứ ba như twitter, facebook và gmail. Tại thời điểm đó, tôi không sử dụng UsernamePasswordProvider của riêng mình; có lẽ tôi sẽ thêm nó sau.Cách giữ người dùng SecureSocial đăng nhập?

Tôi cần người dùng của mình duy trì trạng thái đăng nhập trong một thời gian dài, có thể là một tuần. Trong trường hợp của tôi, phiên người dùng chỉ được sử dụng cho các tính năng tiện lợi khác nhau như các tùy chỉnh, vì vậy các rủi ro liên quan đến các phiên tồn tại lâu dài chắc chắn ít quan trọng hơn sự tiện lợi của việc không phải đăng nhập mỗi lần.

Có vẻ như phiên hiện được lưu trữ trong cookie tạm thời biến mất khi người dùng chấm dứt trình duyệt. Có một tham số sessionTimeOut trong tệp cấu hình, nhưng mục đích của nó dường như là chấm dứt một phiên trong trình duyệt vẫn mở trong một thời gian dài. Ít nhất, phiên bị gián đoạn ngay lập tức khi tôi đóng và mở lại trình duyệt ngay cả khi thời gian chờ này được đặt thành một số lớn.

Cách được khuyến nghị để giữ người dùng đăng nhập trong một thời gian dài là gì?

+0

Dường như cho các nhu cầu cơ bản của tôi, tôi có thể loại bỏ hoàn toàn an toàn và sử dụng người viết nguệch ngoạc, sau đó thực hiện thủ công cookie phiên. Về cùng một số lượng mã, nhưng kiểm soát nhiều hơn hành vi. – AlexR

Trả lời

3

Ảnh chụp nhanh nhất từ ​​bản gốc (đối với Play 2.1) có thuộc tính mới làm cho cookie xác thực liên tục nếu bạn cần. Trong tệp cấu hình của bạn, bạn có thể thêm:

securesocial.cookie.makeTransient=false 
securesocial.cookie.absoluteTimeoutInMinutes=1440 
securesocial.cookie.idleTimeoutInMinutes=1440 

Điều đó sẽ làm cho cookie bền bỉ và làm cho phiên cuối 24h.

+0

Bạn có thể vui lòng cung cấp giải pháp cho việc này không? Cảm ơn. – user237865

+1

Tôi vừa mở rộng câu trả lời. Điều đó sẽ làm cho nó rõ ràng hơn. – Jorge

2

Đối Chơi 2.2 bạn cần phải thêm phần cookie securesocial.conf tập tin như:

cookie { 
    name=id 
    path=/ 
    httpOnly=true 
    idleTimeoutInMinutes=1440 
    absoluteTimeoutInMinutes=1440 
} 
2

các configs được định nghĩa và sử dụng ở đây: CookieAuthenticator

bạn có thể rê chuột qua các biến và xem như thế nào các cấu hình được sử dụng.

hai cấu hình: absoluteTimeout và idleTimeout được sử dụng cho mục đích khác nhau, điều này line điều khiển khi sẽ cookie được coi là hợp lệ

vì vậy tôi đề nghị bạn sử dụng một giá trị lớn hơn nhiều cho absoluteTimeoutInMinutes hơn người kia một

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