如何使用 JWT 和 flutter_wordpress 包在 Flutter 应用程序中验证 WordPress 非管理员用户?
Posted
技术标签:
【中文标题】如何使用 JWT 和 flutter_wordpress 包在 Flutter 应用程序中验证 WordPress 非管理员用户?【英文标题】:How do I authenticate WordPress non-admin users in a flutter app with JWT and flutter_wordpress package? 【发布时间】: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 将解决它。”
【问题讨论】:
【参考方案1】:你得到的错误:
flutter: Failed to fetch user: WordPress Error! code: wp_empty_list, message: No users found, status: null
是由于 WordPress API 默认情况下仅显示带有帖子的用户列表,并且要解决此问题,请在此处的线程上执行给出的答案: https://wordpress.stackexchange.com/questions/301068/wp-rest-api-only-returning-partial-list-of-users
【讨论】:
以上是关于如何使用 JWT 和 flutter_wordpress 包在 Flutter 应用程序中验证 WordPress 非管理员用户?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 JWT 和 Kubernetes 设置 Spring 后端
如何使用 JWT 和 Passport 正确使用 nodeJs API 的身份验证?