Как использовать открытый идентификатор в качестве системы входа - PullRequest
7 голосов
/ 16 декабря 2010

Я хочу попробовать использовать открытый идентификатор в качестве системы входа на сайт, который я собираюсь сделать. Я проверил этот сайт, и я не совсем уверен, как это все работает и как заставить это работать. http://remysharp.com/2007/12/21/how-to-integrate-openid-as-your-login-system/

Что сейчас ясно, так это то, что открытый идентификатор использует URL вместо паролей. Можете ли вы дать мне несколько ссылок, чтобы помочь мне начать с этим, Нужно ли мне знать продвинутый PHP, чтобы сделать эту работу для меня. Я знаю только основы php.

Ответы [ 2 ]

10 голосов
/ 16 декабря 2010

Благодаря некоторым другим комментариям на 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();
}
3 голосов
/ 16 декабря 2010

Вы можете использовать библиотеку PHP OpenID здесь или для PHP 4 здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...