无法让 oAuth 与 Laravel 和 BigCommerce 应用程序一起使用
Cannot get oAuth to work with Laravel and BigCommerce App
我在使用 BC PHP API 库在 Bigcommerce 上设置 "One-Click-App" oAuth 时遇到问题。
目前的问题是获取实际的授权令牌。我尝试了各种方法并相信它取决于 (Code/Context/Scope) get 请求。他们每次都 return 为 null
。
我都试过了:
$request->query('code');
$request->get('code');
在 BC 应用程序启动屏幕上,我看到:
Trying to get property 'access_token' of non-object
这当然是因为令牌 returning null。
这是我在 Laravel
中的控制器
namespace App\Http\Controllers;
use \Illuminate\Http\Request;
use Bigcommerce\Api\Client as Bigcommerce;
class BController extends Controller
{
//
public function index(Request $request)
{
$object = new \stdClass();
$object->client_id = 'xxxxxxxxxxxxxx';
$object->client_secret = 'xxxxxxxxxxxxxxxx';
$object->redirect_uri = 'https://linkto/process_oauth_result';
$object->code = $request->query('code');
$object->context = $request->query('context');
$object->scope = $request->query('scope');
Bigcommerce::useJson();
$authTokenResponse = Bigcommerce::getAuthToken($object);
// configure BC App
Bigcommerce::configure([
'client_id' => env('xxxxxxxxxxxxxx'),
'auth_token' => $authTokenResponse->access_token,
'store_hash' => 'xxxxxxx'
]);
Bigcommerce::verifyPeer(false);
return 'Success!';
}
}
好吧,事实证明这很好用。我正在使用 Runcloud 管理应用程序,click-jacking
选项阻止了应用程序屏幕上的 iframe!
我在使用 BC PHP API 库在 Bigcommerce 上设置 "One-Click-App" oAuth 时遇到问题。
目前的问题是获取实际的授权令牌。我尝试了各种方法并相信它取决于 (Code/Context/Scope) get 请求。他们每次都 return 为 null
。
我都试过了:
$request->query('code');
$request->get('code');
在 BC 应用程序启动屏幕上,我看到:
Trying to get property 'access_token' of non-object
这当然是因为令牌 returning null。
这是我在 Laravel
中的控制器namespace App\Http\Controllers;
use \Illuminate\Http\Request;
use Bigcommerce\Api\Client as Bigcommerce;
class BController extends Controller
{
//
public function index(Request $request)
{
$object = new \stdClass();
$object->client_id = 'xxxxxxxxxxxxxx';
$object->client_secret = 'xxxxxxxxxxxxxxxx';
$object->redirect_uri = 'https://linkto/process_oauth_result';
$object->code = $request->query('code');
$object->context = $request->query('context');
$object->scope = $request->query('scope');
Bigcommerce::useJson();
$authTokenResponse = Bigcommerce::getAuthToken($object);
// configure BC App
Bigcommerce::configure([
'client_id' => env('xxxxxxxxxxxxxx'),
'auth_token' => $authTokenResponse->access_token,
'store_hash' => 'xxxxxxx'
]);
Bigcommerce::verifyPeer(false);
return 'Success!';
}
}
好吧,事实证明这很好用。我正在使用 Runcloud 管理应用程序,click-jacking
选项阻止了应用程序屏幕上的 iframe!