繁体   English   中英

如何使用 JWT 和 flutter_wordpress 包在 Flutter 应用程序中对 WordPress 非管理员用户进行身份验证?

[英]How do I authenticate WordPress non-admin users in a flutter app with JWT and flutter_wordpress package?

我是 Flutter 的新手,我正在 Flutter 中为以前存在的 WordPress 会员站点构建一个应用程序。

目前,我正在 WordPress 站点上使用 flutter_wordpress 0.1.4 包和“WP REST API 的 JWT 身份验证”插件来尝试对用户(成员)进行身份验证。 https://pub.dev/packages/flutter_wordpresshttps://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端点,响应会提供tokenuser_emailuser_nicenameuser_display_name ,即使对于非管理员也是如此在 WordPress 网站上正确设置,因为这是正确的响应。

编辑:另外,我忘了说我发现这篇 Stack Overflow 帖子非常相关: 无法验证不是管理员的用户但问题是我不明白这部分是什么意思 - “允许每个人访问 /您的 server/jwt 配置中的 wp-json/wp/v2/users 将修复它。”

你得到的错误:

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-只返回部分用户列表

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM