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();
}
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
możliwy duplikat http://stackoverflow.com/questions/42407/how-do-i-implement-openid-in-my-web-application –