Создать токен пользователя Wordpress JWT без учетных данныхJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Создать токен пользователя Wordpress JWT без учетных данных

Сообщение Гость »


**Получить токен пользователя**

В моем случае я хочу восстановить токен аутентификации Wordpress от вошедшего в систему пользователя.

Чтобы восстановить этот токен, я использую плагин jwt-authentication-for-wp-api

Плагин Lien: https://wordpress.org/plugins/jwt-authe ... -rest-api/

Вот две конечные точки, предложенные плагином, которые нас интересуют:

Эта конечная точка позволяет нам получить токен, используя имя пользователя» и пароль»
[*]https://instance.fr/wp-json/jwt-auth/v1 ... d=password
Эта конечная точка позволяет нам проверить только что восстановленный токен
[*]https://instance.fr/wp-json/jwt-auth/v1 ... date?token
У меня уже есть сценарий Javascript, который позволяет мне получить токен с учетными данными моей учетной записи, а затем использовать последние для получения сообщения проверки токена, которое я помещаю в файлы моей темы WordPress. Вот путь к файлу активной темы в моем экземпляре Wordpress:
[*]instance.fr/httpdocs/wp-content/themes/astra-child/js/script.js
Пока я делаю все в тестовом экземпляре.

Сначала я извлекаю переменные подключенного пользователя из файла functions.php активной темы. instance.fr/httpdocs/wp-content/themes/astra-child/functions.php

functions.php

функция Transform_variables_wp() { $current_user = wp_get_current_user(); wp_enqueue_script('transformation_variables_wp', get_stylesheet_directory_uri() . '/js/script.js'); wp_localize_script('transformation_variables_wp', 'my_script_var_wp', массив( 'prenom_wp' => $current_user->user_firstname, 'nom_wp' => $current_user->user_lastname, 'courriel_wp' => $current_user->user_email, 'username_wp' => $current_user->user_login, )); } add_action('wp_enqueue_scripts', 'transformation_variables_wp'); Затем я преобразовываю эти переменные в Javascript, чтобы можно было манипулировать ими в моем скрипте ниже.

script.js

// ---------------- Пользовательские переменные, полученные в Wordpress ----------- --------- вар prenom_e = my_script_var_wp.prenom_wp; вар nom_e = my_script_var_wp.nom_wp; вар courriel_e = my_script_var_wp.courriel_wp; вар username_e = my_script_var_wp.username_wp; // // --- Преобразование переменных --- // const имя = prenom_e; константная фамилия = nom_e; константная электронная почта = Courriel_e; константное имя пользователя = username_e; // константный пароль = «пароль»; // // --------------Переменные------------------------------ const urlInfoClient = "https://www.instance.fr"; // ---------------------------------------------------------------- ----- // ---------------- URL-адреса среды API -------------------- const urlGetToken = "https://instance.fr/wp-json/jwt-auth/v1/token"; const urlValidateToken = "https://instance.fr/wp-json/jwt-auth/v1/token/validate"; // ---------------------------------------------------------------- ----- асинхронная функция GenerateToken() { console.log(" "); console.log("Функция GenerateToken()"); const res = ожидание выборки( urlGetToken + `?username=${username}`+`&password=${password}`, { метод: 'POST', заголовки: { «Тип контента»: «application/json; кодировка = UTF-8» } } ); если (res.status !== 200) { throw new Error(`Невозможно восстановить токен`); } пусть данные = ждут res.json(); console.log(данные); если (данные && data.токен) { летокен = data.токен } еще { console.log("Собственный токен не существует в ответе JSON."); } } асинхронная функция UseToken() { console.log(" "); console.log("Функция UseToken()"); вар токен = летокен; const res1 = ожидание выборки( urlValidateToken + `?${токен}`, { метод: 'POST', заголовки: { "Тип контента": "application/json; кодировка = UTF-8", «Авторизация»: `Носитель ${token}` } } ); if (res1.status !== 200) { // throw new Error(`Невозможно восстановить токен`); } пусть data1 = ждут res1.json(); console.log(данные1); вернуть данные1; } // -----действия------------------ window.addEventListener('DOMContentLoaded', (event) => { document.getElementById("auth_button").onclick = function () { ГенерироватьТокен() .then(() => UseToken()) .catch((ошибка) => { console.error(ошибка); }); }}); Когда я нажимаю кнопку, консоль выдает следующие результаты:

Функция GenerateToken() {token: 'token_generated', user_email: '[email protected]', user_nicename: 'stackov', user_display_name: 'Stack Overflow'

Функция UseToken()

код: «jwt_auth_valid_token» данные: {статус: 200

Я поместил пароль в переменные сценария Javascript, чтобы функция генерации токенов работала.

Но я хочу восстановить токен входа без необходимости вводить пароль в запросе. Моя цель — получить переменную токена из ответа JSON и использовать ее для подключения к другому экземпляру, который не является экземпляром Wordpress. Этот токен будет мостом между моим экземпляром Wordpress и другим экземпляром. На данный момент я не нашел безопасных способов сделать это.

Спасибо всем. Я остаюсь доступен для получения дополнительной информации
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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