2010-12-16 14 views
7

Açık kimliğimi, yapacağım sitede oturum açma sistemi olarak kullanmayı denemek istiyorum. Bu siteye bir göz atıyorum ve bunların nasıl çalıştığından ve nasıl çalışacağından pek emin değilim. http://remysharp.com/2007/12/21/how-to-integrate-openid-as-your-login-system/Oturum açma sistemi olarak açık kimliği nasıl kullanılır?

Şu anda açık olan şu açık kimlik, parolalar yerine URL'leri kullanır. Bana bu işe başlamak için bazı bağlantılar verebilir misiniz, Bu işi benim için yapabilmek için gelişmiş php'yi bilmem gerekiyor mu. Sadece php'nin temellerini biliyorum.

+0

Kendi StackOverflow'umuz OpenID kullanır. Ayrıca, çoğu dil ve çerçeve için OID kitaplıkları bulunur. Ama oldukça basit. Birisi OpenID'leriyle giriş yapmak için OID tarafından belirtilen bir siteye yönlendirilirsiniz ve bu site kullanıcının kimliğini doğrulayabilirse, kullanmanız için size bir sır verecektir. Bu gizli OID olan kullanıcı adı için şifre gibi çalışır. Yani her şey güvenli, ya da daha çok, ama kullanıcı kimlik doğrulamasını yayınlayan siteye aktarıyorsunuz. – Robert

+0

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

cevap

3

PHP OpenID kütüphanesi here kullanabilir veya PHP 4 here

+1

lightopenid'in olası kopyası –

10

stackoverflow.com bazı diğer yorum sayesinde ben yaklaşık LightOpenId öğrenmeye geldi. Kullanımı gerçekten çok kolay.

example kod sadece (herhangi bir yapılandırmaya gerek kalmadan) çalışır:

<?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 as openid provider kullanma.

<?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

ile başlamak için çok daha basit ve hızlıdır.) = "Submit" :) ile bir girdi olmalı ama yine de bir formda asla tek bir düğmeye sahip değilim, bu yüzden belki de yanlış, lütfen beni düzeltirseniz, bunun nasıl yanlış olabileceğini anlamıyorum .. –

+0

Bu sadece çalışır. Daha hızlı erişim için örneklerden sadece kopyalanır: => http://gitorious.org/lightopenid/lightopenid/blobs/master/example-google.php. – Alfred