Điểm:0

Phiên người dùng ẩn danh liên tục với D9 không đầu

lá cờ ck

Nói tóm lại: một phiên php mới được bắt đầu theo mọi yêu cầu được thực hiện thông qua nextjs, bằng cách nào đó, tôi phải giữ cho phiên người dùng ẩn danh tồn tại.

Đối với người dùng ẩn danh của tôi, tôi cần theo dõi dữ liệu được gửi qua nextjs. Ban đầu, tôi phát triển ứng dụng của mình với Drupal 8.9 và nhiều tháng sau đó đã nâng cấp lên 9.4-dev.

Trước khi nâng cấp lên 9.4-dev, tôi chắc chắn rằng các phiên hoạt động bình thường trên nhiều trình duyệt và người dùng ẩn danh cùng một lúc; Tôi có thể sử dụng ứng dụng, lưu trữ và sử dụng lại dữ liệu duy nhất cho mỗi người dùng ẩn danh, v.v.Thật không may, thật khó để xác minh điều này, việc hạ cấp xuống 8.9 sẽ gây thêm khó khăn..

Sau khi nâng cấp, người dùng ẩn danh đột nhiên chia sẻ cùng một phiên. Điều này có thể liên quan đến https://www.drupal.org/project/session_basing_temp_store/issues/3257214https://www.drupal.org/node/3006306 nhưng không chắc chắn. Việc sử dụng session_based_temp_store:1.1 dẫn đến phiên được chia sẻ và session_basing_temp_store:1.2 dẫn đến phiên không liên tục.

Mã bên dưới được sử dụng để hoạt động:

 if ($this->currentUser->isAuthenticated()) {
  $user_preferences = unserialize($this->currentUser->get('field_preferences')->value);
  foreach ($values ​​as $key => $value) {
    $user_preferences[$key] = $value;
  }
  $this->currentUser->set('field_preferences', serialize($user_preferences))->save();
}
khác {
  $session = \Drupal::service('session_basing_temp_store')->get('mymodule_user');
  $user_preferences = $session->get('d_user');
  foreach ($values ​​as $key => $value) {
    $user_preferences[$key] = $value;
  }

  $session->set('d_user', $user_preferences);
}

Khi cố gắng khắc phục sự cố, tôi đã thử sử dụng tempstore.private dẫn đến sự cố tương tự (phiên mới mỗi yêu cầu).

Sau này, tôi đã cố gắng sử dụng mã bên dưới, điều này cũng dẫn đến cùng một vấn đề:

$_SESSION['my_module']['data'] = 'Dữ liệu của tôi';
$request = $this->requestStack->getCurrentRequest();
$session = $request->getSession();

Ngay cả thử nghiệm var $_SESSION['my_module']['data'] cũng được "đặt lại" mọi lúc. Vì vậy, việc tôi cố gắng sử dụng phương pháp lưu trữ nào không thực sự quan trọng; vấn đề rõ ràng là một phiên không liên tục.

Tất cả các tài nguyên còn lại của tôi được gọi với các yêu cầu POST và được xác thực bằng oauth2. Mọi thứ hoạt động độc đáo cho người dùng được xác thực. Người dùng ẩn danh cũng có thể thực hiện thành công các yêu cầu.

Tìm kiếm trên Google Tôi thực sự không thể tìm thấy bất cứ điều gì hữu ích, điều này khiến tôi nghĩ rằng mình đang thiếu điều gì đó hiển nhiên..

Mục tiêu chính là: người dùng ẩn danh phải giữ phiên liên tục trong drupal không đầu, đồng thời khi người dùng đóng trình duyệt và quay lại một tuần sau, phiên tương tự vẫn phải tồn tại..

Tôi không muốn lưu trữ bất kỳ dữ liệu nào do người dùng nhập ở giao diện người dùng.

Tôi nghĩ vấn đề khá logic..: làm thế nào Drupal có thể biết ai đang đưa ra yêu cầu ẩn danh? Tôi có nên có một số loại cookie người dùng ẩn danh ở giao diện người dùng, được kết nối với phiên người dùng ẩn danh ở phần phụ trợ, được chuyển với mọi yêu cầu không?

Ai đó có thể chỉ cho tôi đi đúng hướng không? Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.

Điểm:0
lá cờ cn

Mục tiêu chính là: người dùng ẩn danh phải giữ một phiên liên tục trong một headless drupal, cả khi người dùng đóng trình duyệt và quay lại một tuần sau, phiên tương tự vẫn phải tồn tại.

Đây là những gì cookie dành cho. Tôi không biết về nextjs, nhưng trong ứng dụng React không đầu của mình, tôi lưu trữ tất cả các tùy chọn người dùng ẩn danh dưới dạng đối tượng JSON mà tôi đưa vào cookie.

Chỉ dựa vào việc xử lý phiên của Drupal để theo dõi đáng tin cậy các tùy chọn của người dùng đối với người dùng ẩn danh nghe có vẻ như là một công thức dẫn đến thảm họa.

Tôi không muốn lưu trữ bất kỳ dữ liệu nào do người dùng nhập ở giao diện người dùng.

Bạn sẽ cần lưu trữ cookie. Tuy nhiên, các cookie chỉ lưu trữ tùy chọn của người dùng và không được sử dụng để theo dõi người dùng sẽ không vi phạm GDPR, v.v.

Maarten Hartman avatar
lá cờ ck
Cảm ơn bạn, tôi sẽ suy nghĩ về điều này.
4uk4 avatar
lá cờ cn
*Chỉ dựa vào phiên của Drupal* ... OP đã sử dụng mô-đun đóng góp để tự đặt cookie riêng. Các sự cố bắt đầu khi mô-đun cần được cập nhật sau khi cập nhật lõi.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.