我有一个使用 Digits 作为身份验证的应用程序。客户端完美运行,但我无法通过 oAuth 进行服务器用户身份验证。我的服务器是用 Laravel 开发的,所以它是 PHP。我的端点在 https 下,所以一切都应该准备好拨打电话。
1 回答
3
我自己解决了!
这是通过 Digits O-Auth 正确进行身份验证的代码。
进行身份验证的函数位于 AuthManager 类中,我以这种方式调用:
$obj = AuthManager::verifyUser($request->header('X-Auth-Service-Provider'),$request->header("X-Verify-Credentials-Authorization"));
这是创造魔法的功能:
public static function verifyUser ($xAuthServiceProvider, $xVerifyCredentialsAuthorization)
{
$curl = curl_init();
curl_setopt($curl,CURLOPT_URL, $xAuthServiceProvider);
curl_setopt($curl,CURLOPT_HTTPHEADER, array(
'Content-length: 0',
'Content-type: application/json',
'Authorization: '.$xVerifyCredentialsAuthorization,
));
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
$content = curl_exec($curl);
$info = curl_getinfo($curl);
curl_close($curl);
$obj = json_decode($content, true);
return $obj;
}
如果您有任何问题,请不要犹豫,在这里写!
使用有关如何从 O-AUTH 获取数据的示例函数进行编辑
public function authenticate (Request $request)
{
$obj = AuthManager::verifyUser($request->header('X-Auth-Service-Provider'),$request->header("X-Verify-Credentials-Authorization"));
if(isset($obj["errors"]))
{
return "error!";
}
$digits_token = $obj["access_token"]["token"];
$digitsId = $obj["id"];
/*
the variables above are returned by O-auth server-server authentication
*/
}
于 2016-02-18T10:13:14.497 回答