Почему этот заголовок авторизации вызывает статус 401 из журнала X API с функцией X?Javascript

Форум по Javascript
Ответить
Anonymous
 Почему этот заголовок авторизации вызывает статус 401 из журнала X API с функцией X?

Сообщение Anonymous »

Я пытаюсь вручную интегрироваться с входом в систему X API с функцией X, которая следует за OAuth 1.0a. .com/resources/fundamentals/outentication/guides/log-in-with-x
и данный oauth1.0a/initiate пример здесь:
https://datatracker.ietf .org/doc/html/rfc5849#раздел-1.2
Я создал функцию вспомогательной ниже. Когда я отправляю свой запрос на сообщение с заголовком авторизации, созданного следующей функцией, я получаю код Status 401 от XPI /OAUTH /request_token. Я ожидал статуса 200 и получит временные учетные данные от конечной точки. Убедитесь, что все мои env_vars имеют ожидаемые значения, и я консоль. "Lang-None PrettyPrint-Override">
function createAuthorizationHeaderWithSignature() {
const method = 'POST';

const encodedCallbackUrl = encodeURIComponent(X_CALLBACK_URL);

const params = {
'oauth_callback': encodedCallbackUrl,
'oauth_consumer_key': X_CLIENT_ID,
'oauth_nonce': Math.random().toString(36).substring(2),
'oauth_signature_method': 'HMAC-SHA1',
'oauth_timestamp': Math.floor(Date.now() / 1000),
'oauth_version': '1.0'
};

//@ts-ignore
// Sort parameters and encode
const sortedParams = Object.keys(params).sort().map(key => `${encodeURIComponent(key)}=${encodeURIComponent(params[key])}`).join('&');

// Construct base string
const baseString = encodeURIComponent(method) + '&' + encodeURIComponent(BASE_URL) + '&' + encodeURIComponent(sortedParams);

// Construct encoded signature
const signingKey = encodeURIComponent(X_CLIENT_SECRET!) + '&';
const hmac = crypto.createHmac('sha1', signingKey);
hmac.update(baseString);
const signature = hmac.digest('base64');
const encodedSignature = encodeURIComponent(signature);

const authorizationHeader = `OAuth oauth_callback="${params.oauth_callback}",oauth_consumer_key="${params.oauth_consumer_key}",oauth_nonce="${params.oauth_nonce}",oauth_signature="${encodedSignature}",oauth_signature_method="${params.oauth_signature_method}",oauth_timestamp="${params.oauth_timestamp}",oauth_version="${params.oauth_version}"`;
return authorizationHeader;
}


Подробнее здесь: https://stackoverflow.com/questions/794 ... -in-with-x
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Javascript»