无法验证不是管理员的用户

时间:2019-05-09 13:42:56

标签: wordpress flutter wordpress-rest-api flutter-dependencies

我正在开发一个Flutter应用程序,我希望用户能够使用其wordpress凭据进行身份验证。

我正在使用https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/#descriptionhttps://github.com/dreamsoftin/flutter_wordpress来简化操作。

import 'package:flutter/material.dart';
import 'package:flutter_wordpress/flutter_wordpress.dart' as wp;

void main() => runApp(MyApp());

wp.WordPress wordPress = wp.WordPress(
  baseUrl: 'https://sandbox.myfprod.fr/',
  authenticator: wp.WordPressAuthenticator.JWT,
  adminName: '',
  adminKey: '',
);

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Material App',
      home: Scaffold(
        appBar: AppBar(
          title: Text('Material App Bar'),
        ),
        body: Center(
          child: Container(
            child: Column(
              children: <Widget>[
                TextField(
                  obscureText: false,
                  decoration: InputDecoration(labelText: 'Email'),
                ),
                TextField(
                  obscureText: false,
                  decoration: InputDecoration(labelText: 'Password'),    
            ),
                RaisedButton(
                  child: Text('Login'),
                  onPressed: () {
                    Future<wp.User> response = wordPress.authenticateUser(
                      username: '•••••••••••',
                      password: '•••••••••••',
                    );

                    response.then((user) {
                      print(user);
                    }).catchError((err) {
                      print('Failed to fetch user: $err');
                    });
                  },
                )
              ],
            ),
          ),
        ),
      ),
    );
  }
}

仅当用户具有管理员角色并且我想对所有用户进行身份验证,而不论其角色如何时,此代码才有效。

还有另一个问题:我无权访问所有用户属性。例如email.email返回null

1 个答案:

答案 0 :(得分:0)

该库依赖对d = structure(list(VideoDuration = c("00:02:17", "00:02:17", "00:01:47", "00:02:37", "00:02:41", "00:04:00")), class = "data.frame", row.names = c("1", "2", "3", "4", "5", "6")) 的访问。因此允许所有人访问您的服务器/ jwt配置中的/wp-json/wp/v2/users将对其进行修复。

示例应用可以验证用户身份。 auth函数返回状态码200,但fetchUser将阻止该应用完成登录。您可以使用/wp-json/wp/v2/users中的调试器来了解会发生什么。

检查您的服务器对以下请求的答复并比较结果(确保在请求中替换网址和电子邮件)。

  

获取https:/your.url/wp-json/wp/v2/users/?search=nonadminuser@example.com&

将其与管理员用户的相应请求进行比较:

  

获取https:/your.url/wp-json/wp/v2/users/?search=adminUser@example.com&