- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在开发一个移动应用程序(在 Flutter 中),它需要从 Wordpress LearnDash LMS 环境访问用户的类(class)数据。可以通过标准 REST API 通过 https://<site>/wp-json/ldlms/v1/
访问 Wordpress 站点。路径。
但是每当我尝试访问例如<...>/ldlms/v1/sfwd-courses/<id>/steps
,结果是 401(未授权)状态。
从 Wordpress 文档中我了解到它使用 cookie 身份验证。但添加 wordpress_logged_in_<hash>
请求 header 的 cookie 似乎没有什么不同。
我在哪里可以找到访问此信息所需的缺失身份验证详细信息?
最佳答案
我刚刚构建了我的 REST API;所以我可能会有所帮助。下面的示例将:
Rest API Authentication Reference
函数.php
add_action('rest_api_init', 'register_custom_fields');
function register_custom_fields(){
register_rest_route(
'app', '/login/',
[ 'methods' => 'POST', 'callback' => 'asset_login' ]
);
}
function asset_login(){
$user = wp_signon($_POST);
if (is_wp_error($user)){
return [ 'result' => 'fail', 'error' => $user->get_error_message() ];
} else {
return [ 'result' => 'success', 'user' => [ 'ID' => $user->data->ID, 'name' => $user->data->display_name ] ];
}
}
add_action('init','stage_script');
function stage_script(){
wp_enqueue_script('asset-library', trailingslashit(get_stylesheet_directory_uri()) . 'js/asset-library.js', ['jquery']);
$assetUser = null;
if (is_user_logged_in()){
$user = wp_get_current_user();
$assetUser = [
'ID' => $user->data->ID,
'name' => $user->data->display_name,
'nickname' => $user->data->user_nicename,
'email' => $user->data->user_email,
'allcaps' => $user->allcaps
];
}
wp_localize_script( 'your-app', 'App', [
'user' => $assetUser,
'api_endpoint' => esc_url_raw( rest_url() ),
'api_version' => 'wp/v2/',
'nonce' => wp_create_nonce( 'wp_rest' )
]);
}
script.js
// The Login Controller
let AppUser = {
loggedIn: false,
login: function(data){
$.ajax( {
url: App.api_endpoint + 'your-app/login',
method: 'POST',
beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', App.nonce );
},
data: data,
success: function(response){
/* ... parse response ... */
},
error: function(response){
/* ... parse response ... */
}
});
}
};
// The API Controller
let QueryController = {
Objects: [],
getObjects: async function(){
let q = {};
/* ... build query stuff extracted */
try {
const response = await $.ajax( {
url: App.api_endpoint + App.api_version + 'post_object',
method: 'GET',
beforeSend: function ( xhr ) {
xhr.setRequestHeader( 'X-WP-Nonce', App.nonce );
},
data: q
});
this.Objects = response;
return response;
} catch(e) {
console.log('Error: ', e);
}
}
};
关于wordpress - 如何通过 Wordpress REST API 对 LearnDash 中 protected 数据的远程访问进行身份验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64635873/
目前,LearnDash 有一个功能(将添加到 functions.php),允许您在类(class)中自动注册特定用户。我想知道是否可以将一个简单的函数添加到我的主题的函数文件中并将其从 user_
我正在开发一个移动应用程序(在 Flutter 中),它需要从 Wordpress LearnDash LMS 环境访问用户的类(class)数据。可以通过标准 REST API 通过 https:/
我是一名优秀的程序员,十分优秀!