2010-12-16 16 views
7

Chcę spróbować użyć otwartego identyfikatora jako systemu logowania w witrynie, którą mam zamiar wprowadzić. Sprawdziłem tę stronę i nie jestem całkiem pewien, jak to wszystko działa i jak to działa. http://remysharp.com/2007/12/21/how-to-integrate-openid-as-your-login-system/Jak używać identyfikatora otwartego jako systemu logowania

Teraz jest jasne, że otwarty identyfikator używa adresów URL zamiast haseł. Czy możesz podać mi linki, które pomogą mi zacząć z tym, Czy muszę znać zaawansowany php, aby to działało dla mnie. Wiem tylko podstawy php.

+0

Nasz własny StackOverflow wykorzystuje OpenID. Ponadto biblioteki OID istnieją dla większości języków i frameworków. Ale to całkiem proste. Aby zalogować kogoś do swojego OpenID, przekierowujesz na stronę wskazaną przez OID i jeśli ta witryna może zweryfikować tożsamość użytkownika, da ci sekret do użycia. Ten sekret działa jak hasło do nazwy użytkownika, która jest OID. Więc jest tak samo bezpieczny, a nawet bardziej, ale przekazujesz uwierzytelnienie użytkownika do strony, która go wydała. – Robert

+0

możliwy duplikat http://stackoverflow.com/questions/42407/how-do-i-implement-openid-in-my-web-application –

Odpowiedz

3

Można korzystać z biblioteki PHP OpenID here lub PHP 4 here

+1

lightopenid jest znacznie prostszy i szybszy do rozpoczęcia z –

10

Dzięki innego komentarzu stackoverflow.com przyszedłem, aby dowiedzieć się o LightOpenId. Jest naprawdę łatwy w użyciu.

Kod example prostu działa (bez konfiguracji):

<?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(); 
} 

Korzystanie google as openid provider.

<?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(); 
} 
+0

przycisk nic nie robi:) Powinien to być input z type = "submit" :), ale znowu mam tylko jeden przycisk w formularzu, więc może jestem zły, jeśli jestem proszę, popraw mnie, nie widzę jak to może być źle .. –

+0

To po prostu działa. Jest po prostu skopiowany z przykładów => http://gitorious.org/lightopenid/lightopenid/blobs/master/example-google.php, aby uzyskać szybszy dostęp. – Alfred

Powiązane problemy