Trong node.js (sử dụng khung Hapi), tôi đang tạo liên kết để người dùng cho phép ứng dụng của tôi đọc tài khoản người dùng. Google xử lý yêu cầu đó và hỏi về cấp quyền. Sau đó, Google chuyển hướng đến máy chủ của tôi với tham số GET làm mã phản hồi và tại đây tôi gặp sự cố.Chrome không gửi cookie sau khi chuyển hướng
Google Chrome không gửi cookie có ID phiên.
Nếu tôi đánh dấu cookie đó là cookie phiên trong tiện ích chỉnh sửa cookie, nó sẽ được gửi. Hành vi tương tự trong php, nhưng php đánh dấu cookie là phiên khi tạo phiên, do đó, nó không phải là vấn đề. Tôi đang sử dụng plugin hapi-auth-cookie, nó tạo phiên và xử lý mọi thứ về nó. Tôi cũng đánh dấu cookie đó trong cài đặt cookie hapi-auth là không HttpOnly, bởi vì nó là sự khác biệt đầu tiên, mà tôi đã nhận thấy, khi kiểm tra cookie phiên PHP và của tôi trong node.js. Tôi có phản hồi xác thực mất tích 401 trên mỗi chuyển hướng. Nếu tôi đặt con trỏ vào thanh địa chỉ và nhấn enter, mọi thứ hoạt động tốt, do đó, nó là một vấn đề với chuyển hướng.
Câu hỏi của tôi về cơ bản là những gì có thể gây ra hành vi đó. Mặt khác tôi phải đề cập đến rằng firefox gửi cookie sau mỗi yêu cầu mà không có bất kỳ vấn đề.
Headers sau khi chuyển hướng (không có cookie với session):
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"x-client-data": "CJS2eQHIprbJAQjEtskECKmdygE=",
"x-chrome-connected": "id=110052060380026604986,mode=0,enable_account_consistency=false",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4"
}
Headers sau khi chạm nhập vào thanh địa chỉ (những gì sẽ làm việc tốt):
{
"host": "localhost:3000",
"connection": "keep-alive",
"cache-control": "max-age=0",
"upgrade-insecure-requests": "1",
"user-agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36",
"accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8",
"accept-encoding": "gzip, deflate, sdch, br",
"accept-language": "pl-PL,pl;q=0.8,en-US;q=0.6,en;q=0.4",
"cookie": "SESSID=very_long_string"
}
Vui lòng hiển thị mã cho chuyển hướng. Hai điều cần kiểm tra: Bạn có đặt đường dẫn gốc trên cookie phiên để có thể nhìn thấy từ mọi nơi trên trang web không? Chuyển hướng của bạn đến cùng một tên miền/cổng/giao thức có phải là trang mà cookie được đặt không? – jfriend00
Có, cookie có đường dẫn:/và nó hoạt động tốt trên mọi tuyến đường. Google đang thực hiện chuyển hướng đến trang web của tôi sau khi lần truy cập của người dùng cho phép, vì vậy tôi không có mã đó. Và nó là tất cả mọi thứ tốt về mặt lý thuyết vì tôi có thể nhấn enter trong thanh địa chỉ và sau đó cookie được gửi đi. Google chrome chỉ không gửi cookie sau khi chuyển hướng từ google đến 'http: // localhost: 3000/api? Code = code_from_google' nhưng nếu tôi sao chép liên kết và dán nó, nó hoạt động. –