Tôi đang gặp vấn đề với Auth :: check() trong tên miền phụ qua yêu cầu ajax .. Kịch bản: 2 tên miền phụLaravel CORS phiên subdomain
www.testing.dev
api.testing.dev
Độc đăng nhập/phiên giữa hai .. trong cấu hình laravel/session.php i đã thiết lập 'domain' => ".testing.dev"
và mọi thứ đều hoạt động tốt, tôi có thể đăng nhập vào một trang và tiếp tục đăng nhập vào trang khác!
Nhưng khi tôi sử dụng ajax có một vấn đề .. kịch bản: là trong api.testing.dev
, tôi thực hiện với con đom đóm, js, bất cứ điều gì
$.ajax({
url: 'http://api.testing.dev/who',
type: 'GET',
cache: false
});
các api.stesting.dev/who
lợi nhuận:
public function getWho(){
return var_dump(Auth::user());
}
Các phản hồi là thông tin tài khoản của tôi! tất cả chính xác ..
nếu từ www.testing.dev
tôi thực hiện cùng một truy vấn ajax, tôi nhận được Auth :: check() trả về giá trị rỗng. Mặc dù tôi nhận được phản ứng bình thường, vì vậy không có vấn đề với thiết lập tên miền chéo .. đây là tiêu đề của tôi trong trong con đường cho api.testing.dev
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: OPTIONS, POST, GET, PUT, DELETE');
header('Access-Control-Allow-Headers: *');
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Allow-Credentials: true');
Trang web đang chạy trong localhost với wamp.
Chỉnh sửa: với trình điều khiển phiên mặc định 'driver' => 'file'
, sau lần đăng nhập ban đầu, trong app/storage/sessions
có một tệp. Và nếu tôi chuyển từ tên miền phụ này sang tên miền phụ khác, không có tệp nào khác được tạo. Mặc dù khi tôi tạo tiền tố CORS ajax, mỗi lần tạo một tệp mới ...
Trải nghiệm chính xác cùng một vấn đề ở đây. –
Câu hỏi nhanh, cách bạn thiết lập tên miền của cookie? –
trong tệp app/config/session.php, đặt 'miền' một cách thích hợp. (đối với một trang web đa tên miền phụ đặt nó thành ".site.com") – ActonDev