有沒有使用POST方法使用LightOpenID庫進行身份驗證的方法?確切地說,在進行身份驗證後,Google(例如)返回到指定的URL,但所有數據都使用GET方法發送給我,這會以醜陋和長的URL結束。使用POST方法的LightOpenID身份驗證
我的代碼是:
所以經過define('BASE_URL', 'http://someurl.com');
try {
$openid = new LightOpenID();
if (!isset($_GET['openid_mode'])) {
// no openid mode was set, authenticate user
$openid->identity = 'https://www.google.com/accounts/o8/id';
$openid->realm = BASE_URL;
$openid->required = array('contact/email');
header('Location: '.$openid->authUrl());
} else if ($_GET['openid_mode'] == 'cancel') {
// user canceled login, redirect them
header('Location: '.BASE_URL);
} else {
// authentication completed, perform license check
if ($openid->validate()) {
$openid->getAttributes();
}
}
} catch (ErrorException $e) {
}
認證OP返回到URL,它看起來是這樣的:
http://someurl.com/index.php?openid.ns=http://specs.openid.net/auth/2.0&openid.mode=id_res&openid.op_endpoint=https://www.googl...
我想OP返回:
http://someurl.com/index.php
並使用POST not GET發送所有數據。
如果您主要關心的是網址看起來不錯,只需在抓取所有數據後將您的端點重定向到一個理智的位置即可。雖然LOID支持POST,但我懷疑每個OID提供者都非常靈活。 – tadamson 2011-02-09 16:13:16
嗯,我認爲谷歌應該是支持它的。你如何在LOID中指定使用POST? – MeanEYE 2011-02-10 10:03:40