Sự cố liên quan đến phiên của bạn, luôn luôn là vấn đề khó nắm bắt. Trong oAuth2, bạn có thể cung cấp thông số state
khi gửi người dùng để xác thực, sau đó nó được gửi lại với người dùng đến ứng dụng của bạn sau khi họ đã xác thực.
Mạng xã hội đặt một chuỗi ngẫu nhiên vào phiên và thông số state
này và kiểm tra nó có chứa cùng giá trị khi người dùng quay lại.
Xem dòng 134 và 212. https://github.com/laravel/socialite/blob/e04ab0bb972662fc72708dfd4eef35200965cca1/src/Two/AbstractProvider.php#L134
Theres một vài giải pháp để cố gắng ...
điều
Trước tiên, bạn có thể đăng nhập chỉ sử dụng tên đăng nhập và mật khẩu của bạn thay vì oauth google?
Kiểm tra miền config/session.php
được đặt chính xác và tùy chọn https
chỉ được đặt thành true
nếu bạn đang chạy qua HTTPS. Nếu tùy chọn https
được bật thì các phiên sẽ chỉ được đặt khi trang web được truy cập qua. https.
'domain' => 'example.com',
Nếu bạn đang sử dụng tên miền phụ trong ứng dụng của bạn thêm vào trước một .
khi bắt đầu tên miền của bạn trong cấu hình phiên của bạn. Điều này sẽ cho phép phiên chuyển sang tất cả các tên miền phụ.
'domain' => '.example.com',
Khi bạn được gửi thông qua google đăng nhập bạn sẽ thấy các thông số state
vào URL, kiểm tra trạng thái này cũng được trả về khi trở lại ứng dụng của bạn.
Bạn cũng có thể thử xóa cookie và bộ nhớ cache của trình duyệt (hoặc sử dụng cửa sổ ẩn danh) điều này đảm bảo không có xung đột giữa các kiểm tra trước đó/cookie hiện tại của bạn.
Bạn cũng có thể thử cài đặt lại các phụ thuộc của mình bằng cách xóa thư mục /vendor
và chạy lại composer install
. Điều này đối với tôi trong quá khứ đã giải quyết vấn đề với các phiên vì lý do không rõ.
Hãy xem câu trả lời sau [đây] (http://stackoverflow.com/questions/29629287/laravel-5-geting-invalidstateexception-in-abstractprovider-php) – jakehallas
không có tác phẩm nào ... – joejoeso
Điều này dường như là một vấn đề khá lớn, nhiều người chạy vào điều này nhưng việc chạy câu trả lời của nhà máy trên các cookie không giải quyết được. Tôi đã thử khá nhiều biến thể của cài đặt cookie để không có kết quả. Trong trường hợp của tôi Nó hoạt động tốt trên homestead nhưng không phải trên máy chủ sản xuất, vì vậy nó cho tôi biết một cái gì đó giữa 2 môi trường đang gây ra nó (đã thử phiên làm cơ sở dữ liệu và tệp để không cho phép tệp) –