私はHybridauth3 libでユーザをログイン/認証することができます。 は、ここに私のコードです:Hybridauth 3でログイン/ログアウトするには?
session_name("authSession");
session_start();
include 'hybridauth/src/autoload.php';
$config = [
'callback' => "https://***/loginRead.php",
'providers' => [
'Twitter' => [],"includeEmail" => true],
'Google' => [],
'Facebook' => []
],
];
$authName = "Facebook";
if(isset($_REQUEST['provider'])){
$provider = strtolower($_REQUEST['provider']);
switch ($provider) {
case 'google':
$authName = "Google";
break;
case 'facebook':
$authName = "Facebook";
break;
case 'twitter':
$authName = "Twitter";
break;
}
$_SESSION['provider'] = $authName;
$hybridauth = new Hybridauth\Hybridauth($config);
$adapter = $hybridauth->getAdapter($authName);
$user = $adapter->authenticate();
$userProfile = $adapter->getUserProfile();
}
// this part is for this callback https://***/loginRead.php from config
if(isset($_SESSION['HYBRIDAUTH::STORAGE']) && count($_SESSION['HYBRIDAUTH::STORAGE'])>=1){
$provider = $_SESSION['provider'];
$hybridauth = new Hybridauth\Hybridauth($config);
$adapter = $hybridauth->getAdapter($provider);
$user = $adapter->authenticate();
$userProfile = $adapter->getUserProfile();
}
if(isset($_GET['loginExit'])){
$adapter->disconnect();
$hybridauth->disconnectAllAdapters();
session_destroy();
header("Location:test.php");
exit();
}
echo '<img src="'.$userProfile->photoURL.'"><br>';
echo $userProfile->identifier.'<br>';
echo '<a href="?loginExit">Exit</a>';
しかし、私は、私はそれを右に使用していないことをかなり確信しています。 2番目のリダイレクトのためにプロバイダをセッションに保存していますが、Hybridauth APIを使用してプロバイダ名を取得する方法が必要ですか、それを行う必要はありませんか?プライバシー名を知らずに[HYBRIDAUTH :: STORAGE]でユーザーを認証する方法は? 3バージョンなどで100%実用的な例がありますか?ありがとう
私は理解しています。あなたはあなたのURLのリンクに '$ authName'を持っている必要がありますか? –
@AnarBayramov私はHybridauth 3の使い方の良い例と説明が必要です。私は良い例を見つけることができます。私は今質問を更新しています。 1分くらいです – SERG
https://github.com/rgnevashev/hybridauth3/tree/master/example? –