vic*_*pbr 2 authentication wordpress flutter
我是 Dart 和 WordPress 的初学者,我想要一些关于如何甚至知道以下想法是否可行的想法:
我有一个 WordPress 页面,已经设置了一个用户区域,我在 Flutter 中开发了一个应用程序,我只希望我的 WordPress 页面的某些类型的用户可以访问。所以我想在我的应用程序中实现一个登录页面,使用 WordPress 进行身份验证,这可能吗?任何人都可以向我指出一些可以帮助我实现这一目标的代码或页面的摘录?
谢谢
小智 5
将以下代码添加到您的 WordPress(通过您(子)主题的functions.php,或通过创建和启用您自己的插件):
add_action('rest_api_init', 'remoteLogin');
public static function remoteLogin($request = [])
{
register_rest_route('remote-login', 'login', array(
'methods' => 'POST',
'callback' => 'restUserLogin',
));
}
function restUserLogin($request = [])
{
$response = [
'success' => false,
'message' => 'Login failed'
];
$status_code = 403;
$parameters = $request->get_json_params();
$username = sanitize_text_field($parameters['username']);
$password = sanitize_text_field($parameters['password']);
$user = null;
if (!empty($username) && !empty($password)) {
$user = wp_authenticate($username, $password);
}
if ($user instanceof WP_User) {
$response['success'] = true;
$response['message'] = 'Login successful';
$status_code = 200;
}
return new WP_REST_Response($response, $status_code);
}
Run Code Online (Sandbox Code Playgroud)
已创建名为 /remote-login/login 的新 REST 路由(您可以在register_rest_route调用中将其更改为您喜欢的任何内容)。新创建的 REST 路由也将列在https://YOUR_DOMAIN_HERE/wp-json/ 上。
接下来,您可以在 Flutter 应用程序中发布用户名和密码,例如:
var url = 'https://YOUR_DOMAIN_HERE/wp-json/remote-login/login';
var body = jsonEncode({ 'username': 'USERNAME', 'password': 'SECRET' });
http.post(url,
headers: {"Content-Type": "application/json"},
body: body
).then((http.Response response) {
final int statusCode = response.statusCode;
if (statusCode == 200) {
// login successful...
Run Code Online (Sandbox Code Playgroud)
在此示例中,状态代码是 200 或 403。对于 200,登录成功,因此甚至无需查看响应 JSON 的成功部分。
| 归档时间: |
|
| 查看次数: |
2631 次 |
| 最近记录: |