我正在开发一个Flutter应用程序,我希望用户能够使用其wordpress凭据进行身份验证。
我正在使用https://wordpress.org/plugins/jwt-authentication-for-wp-rest-api/#description和https://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
答案 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&