Digits を認証として使用するアプリがあります。クライアント側は完全に機能しますが、oAuth を使用してサーバーのユーザー認証を行うことができません。私のサーバーは Laravel で開発されているので、PHP です。私のエンドポイントは https の下にあるので、すべてが呼び出しを行う準備ができているはずです。
質問する
586 次
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 に答える