Я хочу попытаться использовать открытый идентификатор в качестве системы входа на сайт, который я собираюсь сделать. Я проверил этот сайт, и я не очень уверен, как все это работает и как заставить его работать. http://remysharp.com/2007/12/21/how-to-integrate-openid-as-your-login-system/
Сейчас ясно, что open id использует URL вместо паролей. Можете ли вы дать мне несколько ссылок, чтобы помочь мне начать с этого, нужно ли мне знать расширенный php, чтобы сделать эту работу для меня. Я знаю только основы php.
Вы можете использовать библиотеку PHP OpenID здесь или для PHP 4 здесь
Благодаря другому комментарию на Stackoverflow.com я пришел, чтобы узнать о LightOpenId . Он очень прост в использовании.
Код примера работает (без какой-либо конфигурации):
<?php require 'openid.php'; try { $openid = new LightOpenID; if(!$openid->mode) { if(isset($_POST['openid_identifier'])) { $openid->identity = $_POST['openid_identifier']; header('Location: ' . $openid->authUrl()); } ?> <form action="" method="post"> OpenID: <input type="text" name="openid_identifier" /> <button>Submit</button> </form> <?php } elseif($openid->mode == 'cancel') { echo 'User has canceled authentication!'; } else { echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.'; } } catch(ErrorException $e) { echo $e->getMessage(); }
Использование google как поставщика openid .
<?php # Logging in with Google accounts requires setting special identity, so this example shows how to do it. require 'openid.php'; try { $openid = new LightOpenID; if(!$openid->mode) { if(isset($_GET['login'])) { $openid->identity = 'https://www.google.com/accounts/o8/id'; header('Location: ' . $openid->authUrl()); } ?> <form action="?login" method="post"> <button>Login with Google</button> </form> <?php } elseif($openid->mode == 'cancel') { echo 'User has canceled authentication!'; } else { echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.'; } } catch(ErrorException $e) { echo $e->getMessage(); }