plugin php oauth hybridauth hybridauthprovider

plugin - PHP HybridAuth social signin no funciona en absoluto. Redirigiendo a? Hauth.start=Facebook & hauth.time



hybridauth packagist (5)

Además de la propia respuesta de tintinboss, descubrí que también tenía que verificar la hauth_done de hauth_done (esto fue para un ejemplo en Facebook):

if (isset($_REQUEST[''hauth_start'']) || isset($_REQUEST[''hauth_done''])) { Hybrid_Endpoint::process(); }

Esto finalmente lo hizo funcionar - ¡gracias tintinboss por la útil respuesta!

Estaba tratando de hacer que HybridAuth Social Login funcione en este simple sitio php. Descargué HybridAuth y lo instalé. Luego descubrió que incluso los ejemplos no funcionan para el inicio de sesión social (también se probó en un servidor remoto).

El ejemplo normal signin_signup funciona bien. Pero cada vez que hago clic en el enlace para iniciar sesión en una red social (p. Ej., Facebook, twitter) me redirige a (MY_BASE_URL / index.php? Hauth.start = Facebook & hauth.time) sin mostrar ninguna ventana de inicio de sesión / mensajes de error.

He leído cuidadosamente las documentaciones y otras soluciones publicadas aquí. Ajusté mi config.php para tener una url base como http://example.com/index.php . Pero simplemente no responde. ¿Se me escapa algo? He pasado 2 días ya en ello.

Aquí está mi config.php

return array( "base_url" => "http://example.com/index.php", "providers" => array ( // openid providers "OpenID" => array ( "enabled" => false ), "AOL" => array ( "enabled" => false ), "Yahoo" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "Google" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), "Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "xxxxxxxxx", "secret" => "xxxxxxx" ) ), "Twitter" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxxx" ) ), // windows live "Live" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), "MySpace" => array ( "enabled" => false, "keys" => array ( "key" => "", "secret" => "" ) ), "LinkedIn" => array ( "enabled" => true, "keys" => array ( "key" => "xxxxxxxx", "secret" => "xxxxxxx" ) ), "Foursquare" => array ( "enabled" => false, "keys" => array ( "id" => "", "secret" => "" ) ), ), // if you want to enable logging, set ''debug_mode'' to true then provide a writable file by the web server on "debug_file" "debug_mode" => false, "debug_file" => "" );

¿Puede alguien ayudarme por favor? Tengo la sensación de que no funciona muy bien después de buscar en Internet durante bastante tiempo. Si ese es el caso, ¿puede alguien apuntar a una mejor biblioteca de fuente abierta / registro social gratuito?


Estamos usando nginx y lo arreglamos agregando ? $ Args a nuestro bloque de ubicación. Sin ella, la solicitud no pasa hauth_done.

location / { try_files $uri $uri/ /index.php?$args; }


Hola, he intentado todas las sugerencias de solución de este problema, pero ninguna ha alcanzado la solución. Resolví el problema de esta manera.

"base_url" => ''http: //''.$_SERVER ['' SERVER_NAME ''] .''inauth / auth'',

El punto clave aquí es el nombre del servidor. Además, las cookies están registrando sus sesiones y no puede obtener una vista previa de los cambios que ha realizado. Borrar las cookies y vuelva a intentarlo.


Las respuestas de @tintinboss y @dJomp me solucionaron. Sin embargo, todavía necesitaba obtener información del usuario que inició sesión, lo que me llevó mucho tiempo. Aquí comparto la versión final que lo alejará de este horrible bucle.

$config = require ''config.php''; require_once( "Hybrid/Auth.php" ); require_once( "Hybrid/Endpoint.php" ); if (isset($_REQUEST[''hauth_start'']) || isset($_REQUEST[''hauth_done''])) { Hybrid_Endpoint::process(); } else { try { $hybridauth = new Hybrid_Auth( $config ); $google = $hybridauth->authenticate( "Google"); $user_profile = $google->getUserProfile(); echo "Hi there! " . $user_profile->email; } catch( Exception $e ){ echo "Ooophs, we got an error: " . $e->getMessage(); } }


Muy bien, lo he resuelto yo mismo.

Como se dijo antes, la documentación no era realmente buena. Aquí está la solución para cualquier persona que quiera integrar este código en el futuro.

Primero, tienes que hacer que tu baseurl sea así en config.php

"base_url" => "http://yoursite.com/subdomain/index.php", OR "base_url" => "http://yoursite.com/index.php",

Tenga en cuenta que no estoy usando www. No sé por qué, pero no funciona con www.

Ahora la parte difícil, debes incluir esto en tu archivo index.php

require_once( "PATH_TO_HYBRID/Auth.php" ); require_once( "PATH_TO_HYBRID/Endpoint.php" ); if (isset($_REQUEST[''hauth_start''])) { Hybrid_Endpoint::process(); }

El Proceso de punto final es lo que le hace redirigir a una página en blanco si no se proporciona. Y debes agregarlo al index.php en la medida en que lo he probado.

Ahora el código debería funcionar bien :) Estaré feliz si ayuda a alguien.