1

我有一个使用 Digits 作为身份验证的应用程序。客户端完美运行,但我无法通过 oAuth 进行服务器用户身份验证。我的服务器是用 Laravel 开发的,所以它是 PHP。我的端点在 https 下,所以一切都应该准备好拨打电话。

4

1 回答 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 回答