0

DwollaのAPIドキュメントを見て、私のサイトでoauth.phpサンプルコード(以下に示すコード)を試してみると、 Dwollaのページにリダイレクトせずにアクセストークンを生成できるかどうかがわかりません。

私のサイトから彼らのサイトにリダイレクトして私のサイトに戻すことは、UI / UXの観点からは本当にひどいものであり、Paypalが提供する安っぽいインターフェースに勝るものはありません。

AJAXを使用してDwollaアクセストークンを生成する方法を知っている人はいますか?



<?php
// Include the Dwolla REST Client
require '../lib/dwolla.php';

// Include any required keys
require '_keys.php';

// OAuth parameters
$redirectUri = 'http://localhost:8888/oauth.php'; // Point back to this file/URL
$permissions = array("Send", "Transactions", "Balance", "Request", "Contacts",   "AccountInfoFull", "Funding");

// Instantiate a new Dwolla REST Client
$Dwolla = new DwollaRestClient($apiKey, $apiSecret, $redirectUri, $permissions);

/**
 * STEP 1: 
 *   Create an authentication URL
 *   that the user will be redirected to
 **/

if(!isset($_GET['code']) && !isset($_GET['error'])) {
$authUrl = $Dwolla->getAuthUrl();
header("Location: {$authUrl}");
}

/**
 * STEP 2:
 *   Exchange the temporary code given
 *   to us in the querystring, for
 *   a never-expiring OAuth access token
 **/
 if(isset($_GET['error'])) {
echo "There was an error. Dwolla said: {$_GET['error_description']}";
}

else if(isset($_GET['code'])) {
$code = $_GET['code'];

$token = $Dwolla->requestToken($code);
if(!$token) { $Dwolla->getError(); } // Check for errors
else {
    session_start();
    $_SESSION['token'] = $token;
    echo "Your access token is: {$token}";
} // Print the access token
}
4

1 に答える 1

2

TL;DR - いいえ、それは OAuth の仕組みではありません


OAuth スキームの要点は、使用したいサービス (この場合は Dwolla) の Web サイトでの認証です。ユーザーにページへの移動を強制することで、次のことが保証されます。

  1. ユーザーは、サービス条件がアプリケーションとは異なる可能性がある外部サービスを使用していることを認識します
  2. ユーザーは、アプリケーションがそのサービスに対して要求した機能を認識します。dwolla の場合、送金など、アプリケーションで要求できるさまざまなレベルの機能があるため、ユーザーがそのことを認識することが重要です。

OAuth の詳細については、http://oauth.net/を参照してください。

于 2013-01-12T15:00:37.890 に答える