【发布时间】:2020-06-04 05:47:41
【问题描述】:
我是 Flutter 的新手,我正在 Flutter 中为以前存在的 WordPress 会员网站构建一个应用程序。
目前我正在使用 WordPress 网站上的 flutter_wordpress 0.1.4 包和“JWT Authentication for WP REST API”插件来尝试对用户(成员)进行身份验证。 (https://pub.dev/packages/flutter_wordpress 和https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/)
问题是我在验证非管理员用户时遇到错误:
flutter: Failed to fetch user: WordPress Error! code: wp_empty_list, message: No users found, status: null
即使我使用管理员帐户,我也没有获得令牌或除名称和 ID 之外的任何用户信息。
这是我的登录屏幕的颤振代码:
import 'package:flutter_wordpress/flutter_wordpress.dart' as wp;
import 'package:flutter/material.dart';
class SignUpScreen extends StatefulWidget {
static const id = 'sign_up_screen';
@override
_SignUpScreenState createState() => _SignUpScreenState();
}
class _SignUpScreenState extends State<SignUpScreen> {
static final wp.WordPress wordPress = wp.WordPress(
baseUrl: 'https://example.com',
authenticator: wp.WordPressAuthenticator.JWT,
adminName: '',
adminKey: '',
);
void authUser({userName, password}) {
Future<wp.User> response = wordPress.authenticateUser(
username: userName,
password: password,
);
response.then((user) {
print(user);
}).catchError((err) {
print('Failed to fetch user: $err');
});
}
请注意,如果我使用 Postman 将用户名和密码发布到 /wp-json/jwt-auth/v1/token 端点,则响应会给出 token、user_email、user_nicename、user_display_name,即使对于非管理员也是如此在 WordPress 网站上正确设置,因为这是正确的响应。
编辑:另外,我忘了说我发现这个 Stack Overflow 帖子非常相关:Can not authenticate a user who is not an administrator 但问题是我不明白这部分是什么意思——“允许每个人在你的 server/jwt 配置中访问 /wp-json/wp/v2/users 将解决它。”
【问题讨论】:
标签: wordpress flutter jwt wordpress-rest-api