Я новичок в токенах bigcommerce и jwt. Я пытаюсь получить имя пользователя api для входа в магазин трейлов. Но они не смогли успешно войти в систему автоматически.Вход для клиентов Bigcommerce api (single sign-on) неверный вопрос входа
Я получил его работать один или два раза, но теперь он больше не работает, и он не может понять странное поведение, так как ничего не изменилось с кодом. Я пробовал googling, если у кого-то еще были проблемы с клиентом login api, но ничего не нашел.
Я прошел через учебник по адресу https://developer.bigcommerce.com/api/v2/#customer-login-api и скопировал приведенный пример. Есть ли что-то, что мне не хватает с кодом ниже?
- Я пошел в developer.bigcommerce.com и создал черновик приложения.
- Я получил идентификатор клиента и секрет клиента из черновика приложения.
- Я зашел в пробный магазин и успешно установил черновик приложения.
- Я также проверил эту страницу на 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();