有没有办法使用 POST 方法使用 LightOpenID 库进行身份验证?确切地说,在通过身份验证后,谷歌(例如)返回到指定的 URL,但所有数据都是使用 GET 方法发送给我的,最终以丑陋而长的 URL 结束。
我的代码是:
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 而不是 GET 发送所有数据。