我是bigcommerce和jwt令牌的新手。我试图让客户登录api在路径商店工作。但是无法自动成功登录客户。
我让它工作了一两次,但现在它不再工作了,而且由于代码没有任何改变,因此无法弄清奇怪的行为。如果其他人遇到客户登录API问题但我一无所获,我试过谷歌搜索。
我已经通过https://developer.bigcommerce.com/api/v2/#customer-login-api上的教程,并复制了提供的示例。 我在下面的代码中是否遗漏了一些东西?
感谢。
以下是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();
答案 0 :(得分:2)
有一些限制可能导致错误:
如果您排除了上述情况,BigCommerce支持可以访问日志,这可以更好地了解情况。
希望这有帮助!
答案 1 :(得分:0)
不需要应用程序的client_id和密码,您需要api的client_id和密码