Создать токен пользователя Wordpress JWT без учетных данных ⇐ 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 и другим экземпляром. На данный момент я не нашел безопасных способов сделать это.
Спасибо всем. Я остаюсь доступен для получения дополнительной информации
**Получить токен пользователя**
В моем случае я хочу восстановить токен аутентификации 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 и другим экземпляром. На данный момент я не нашел безопасных способов сделать это.
Спасибо всем. Я остаюсь доступен для получения дополнительной информации
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение