Tôi sẽ để mở rộng thêm một chút về câu trả lời của Waldo Baggins.
Khi tôi gặp phải vấn đề này, tôi phát hiện ra lý do điều này xảy ra là cookie phiên được đặt trên máy chủ thường không có giá trị hết hạn. Hành vi mặc định trong trường hợp này là để trình duyệt loại bỏ cookie khi trình duyệt được đóng/mở lại. Vì trình duyệt không gửi lại cookie khi mở lại, máy chủ không có cách nào để xác định phiên, ngay cả khi nó chưa hết hạn trên máy chủ và do đó, người dùng của bạn được chuyển hướng trở lại trang đăng nhập.
Khi người dùng đang sử dụng trang web của bạn ở chế độ ứng dụng web (biểu tượng được thêm vào màn hình chính), iOS xử lý điều hướng đến/từ ứng dụng giống như cách máy tính để bàn xử lý việc đóng và mở lại trình duyệt và mất phiên khi mở lại. Vì vậy, theo đề nghị của Wilbo và đặt thời gian hết hạn cho cookie, iOS sẽ kiểm tra xem cookie có hết hạn khi người dùng điều hướng trở lại ứng dụng của bạn hay không, và gửi lại cookie, do đó duy trì phiên làm việc . Giá trị của 1 năm trong câu trả lời của Wilbo dài một cách lố bịch, bạn thường muốn thiết lập điều này thành 8 hoặc 24 giờ, và lý tưởng đồng bộ hóa nó với giá trị hết thời gian hết hạn mà bạn đã đặt trên máy chủ. Lưu ý rằng như là một tác dụng phụ, khi trang web của bạn được truy cập từ trình duyệt trên máy tính để bàn và người dùng đóng và mở lại trình duyệt, phiên sẽ tiếp tục tồn tại và người dùng vẫn sẽ đăng nhập, điều này sẽ không được đăng nhập t đã được các trường hợp trước đây (trừ khi họ đang duyệt web tư nhân). Tính năng "Đăng xuất" của bạn sẽ phải xử lý đúng cách hết hạn cookie này.
Đối với một ứng dụng web Java sử dụng web.xml phiên bản 3.0 hoặc cao hơn, cách dễ nhất để làm điều này là để sửa đổi <session-config>
như sau:
<session-config>
<session-timeout>600</session-timeout> <!-- In minutes -->
<cookie-config>
<http-only>true</http-only>
<secure>true</secure>
<max-age>36000</max-age> <!-- In seconds -->
</cookie-config>
</session-config>
:) yên tĩnh phức tạp chỉ để có được kết quả tương tự như trình duyệt Safari. Bạn có ví dụ đơn giản nào không. Chỉ để lưu COOKIES thực tế, vì vậy khi tôi khởi động lại người dùng ví dụ không phải đăng nhập lại. –
Nếu bạn muốn gắn bó với cookie, câu trả lời @favo sẽ là lựa chọn tốt hơn vì: i. cookie được thêm vào tiêu đề http trong thế giới thực, thêm nó vào URL có hiệu ứng tương tự ii. người dùng không thể thay đổi URL nếu ứng dụng màn hình chính của bạn (web clip) đang chạy trong "chế độ độc lập". Một điều cuối cùng: Nếu bạn quan tâm đến bảo mật, bạn có thể sử dụng localStorage để kích thích xác thực 2 chiều. – vincicat
Tôi đã thử điều này. Nó không hoạt động bằng cách sử dụng "đánh dấu vào màn hình chính". Tôi không thể tìm thấy bất kỳ bằng chứng bằng văn bản nào, nhưng từ tất cả các thử nghiệm của tôi, nó xóa cả cookie và localStorage mỗi khi bạn mở nó. –