簡體   English   中英

Bigcommerce 客戶登錄api(單點登錄)無效登錄問題

[英]Bigcommerce customer login api (single sign-on) invalid login issue

我是 bigcommerce 和 jwt 令牌的新手。 我正在嘗試讓客戶登錄 api 在 trail 商店上工作。 但一直未能成功自動登錄客戶。

我讓它工作了一兩次,但現在它不再工作了,並且無法弄清楚奇怪的行為,因為代碼沒有任何變化。 如果其他人對客戶登錄 api 有問題但一無所獲,我會嘗試使用谷歌搜索。

我已經完成了https://developer.bigcommerce.com/api/v2/#customer-login-api上的教程並復制了提供的示例。 下面的代碼有什么我遺漏的嗎?

  • 我去了 developer.bigcommerce.com 並創建了一個草稿應用程序。
  • 我從草稿應用程序中獲得了客戶端 ID 和客戶端密碼。
  • 我已經進入試用商店並成功安裝了草稿應用程序。
  • 我也在 SSL 上測試了這個頁面。
  • 難道是因為它是一家小店,只有當它是一家真正的商店時它才會起作用?

謝謝。

這是下面的php代碼:

include "vendor/autoload.php";

use Bigcommerce\Api\Client as Bigcommerce;
use Firebase\JWT\JWT;

function getCustomerLoginToken($id, $redirectUrl = '', $requestIp = '') {
  /*
  if (empty(self::$client_secret)) {
    throw new Exception('Cannot sign customer login tokens without a client secret');
  }
  */

  $payload = array(
     'iss' => '#MyApp1's Client ID#',
     'iat' => time(),
     'jti' => bin2hex(random_bytes(32)),
     'operation' => 'customer_login',
     'store_hash' => '#Store Hash#',
     'customer_id' => $id
  );

  if (!empty($redirectUrl)) {
    $payload['redirect_to'] = $redirectUrl;
  }

  if (!empty($requestIp)) {
    $payload['request_ip'] = $requestIp;
  }

  return JWT::encode($payload, "#MyApp1's Client Secret#", "HS256");
}

$jwt = getCustomerLoginToken(1);

header("Location: " . 'https://store-#Store Hash#.mybigcommerce.com/login/token/' . $jwt);
exit();

有幾個約束可能會導致錯誤:

  • 該應用程序必須安裝在商店中(看起來你們在這里都很好 - 您也可以使用在商店本地創建的 API 令牌進行測試 - https://support.bigcommerce.com/articles/Public/Store-API-賬戶/ )
  • 該應用程序必須具有登錄 OAuth 范圍
  • JWT URL 必須在大約 30 秒內訪問,否則將無法使用。
  • 生成 JWT 的計算機/服務器需要有一個同步的時鍾,否則你的 IAT 值似乎是在超過 30 秒之前創建的,甚至在未來會失敗。
  • 該 URL 只能被訪問一次——如果除了預期的最終用戶的瀏覽器之外,有任何東西對它運行 GET 請求,它就不會工作。 例如,如果您在 Slack 消息中發送 URL,Slack 將嘗試通過訪問它來預覽該鏈接,從而使其無效。
  • 最好在https://jwt.io/仔細檢查您的 JWT 是否有效

BigCommerce 支持人員可以訪問日志,如果您排除了上述情況,這些日志可以更清楚地說明情況。

希望這可以幫助!

不需要app的client_id和secret code,需要api的client_id和secret code

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM