I am using HybridAuth social plugin in my website to login from facebook and other websites,
everything is working fine, but when I checked on other computers, there is an error:
You cannot access this page directly
and I noticed that the error comes when the browser use WWW
in the address bar, the browser on same computer eg: opera not using the www
so there is no error on those browser.
Please help me how can I fix this error so login can be done from any browser.
The reasen is because Facebook callback in different php-session and cant access config info from caller session.
Look at Endpoint.php
if ( ! $storage->config( "CONFIG" ) ) ...
The rason was because I use in my site with 127.0.0.1 but return_uri was with localhost because of Facebook restrictions.
PHP builds different sessions in this case.
adding "www." to the URL resolves the issue.
After adding this on top of my controller it started working
if (session_status() == PHP_SESSION_NONE) {
@session_id($_COOKIE['CAKEPHP']);
@session_start();
@session_name('CAKEPHP');
}
Read here
https://github.com/hybridauth/CakePHP-HybridAuth/pull/1
Those who are facing error message
"You cannot access this page directly."
Try after adding @session_start();
statement at the top of your files.
This could be related by using a custom session handler which is set by session_set_save_handler()
.
I resolved this issue by adding our own custom session handler at the top of hybridauth/index.php
(located in the same dir as config.php
and live.php
).
This forces Hybrid Auth to use your custom session handler.