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 に答える