簡體   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