嗯即時嘗試實現蒸汽OpenID登錄到一個網站,但我不太確定它是如何完成的,以及Steam如何驗證使用OpenID的用戶。OpenID用戶驗證如何工作?
至於現在我所發現的是,蒸汽只給用戶ID後面,沒有別的所以對於剩下的事情由我將不得不使用API來獲取用戶的其他信息。
但是我不太清楚如何得到了用戶驗證的網站上,一旦有人通過OpenID loged英寸
我是否需要做一個會話或設置Cookie或存儲用戶導入數據庫,一旦用戶從OpenID的logedin?
try {
# Change 'localhost' to your domain name.
$openid = new LightOpenID('http://localhost/openid');
if(!$openid->mode) {
if(isset($_GET['login'])) {
$openid->identity = 'http://steamcommunity.com/openid';
header('Location: ' . $openid->authUrl());
}
echo '<li><a href="?login"><img border="0" src="http://cdn.steamcommunity.com/public/images/signinthroughsteam/sits_small.png" /></a></li>';
}
elseif($openid->mode == 'cancel') {
echo 'User has canceled authentication!';
}
else {
$_SESSION['loged']=1;
header('Location: http://localhost/openid');
}
if(isset($_SESSION['loged'])) {
echo '<li><a href="?logout">Logout</a></li>';
}
if(isset($_GET['logout'])) {
unset($_SESSION['loged']);
}
echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
}
catch(ErrorException $e) {
echo $e->getMessage();
}
林採取這一代碼爲例
我猜測
if(!openid->mode)
如果OpenID是未設置裝置?比我應該顯示的登錄按鈕,轉到OpenID提供商登錄,如果我按下該按鈕
下一個則爲否則,如果用戶沒有登錄顯示取消消息
或下一個部分,如果用戶在如此以來loged openid只返回用戶ID,我需要以某種方式處理他,並讓他登錄到我的網站上,爲此,我應該設置一些會話或cookie,這是我設置了會話並將用戶重定向回主頁。
但我不明白幾件事。
爲什麼我的登錄按鈕顯示所有的時間?
這
echo 'User ' . ($openid->validate() ? $openid->identity . ' has ' : 'has not ') . 'logged in.';
爲什麼它不工作?它總是顯示用戶沒有的loggedIn
是的,這幫助了我很多,即時通訊仍不能肯定它完全是如何工作的,但我得到了我想要實現的,現在我有用戶驗證,對網站和會話集註冊,而這正是我需要繼續前進與一個網站。謝謝。 –