WordPress 5.6 REST API 应用程序密码禁用

更新时间:2021-04-21 分类:小程序 浏览量:3736

WordPress 5.6 正式引入 REST API 身份验证和应用程序密码功能,据说可以让第三方应用无缝并且安全地连接到用户的网站。于是考虑要不要整合到小程序授权登录上,通过搜索引擎查找了相关内容,查询了 WordPress 相关开发文档,如果想要类似于 OAuth 2 授权功能,应用程序密码不支持此功能,据说也没有计划。如此一来,似乎这个应用程序密码功能并不太适合小程序开发。

应用程序密码

既然不太适合小程序功能,在没有开发 App 的需求情况下,可以考虑禁用此功能。

默认情况下,通过 SSL / HTTPS 服务的站点上的所有用户都可以使用应用程序密码。可以使用 wp_is_application_passwords_availablewp_is_application_passwords_available_for_user 过滤器对此进行自定义。

例如,要完全禁用应用程序密码,可以将以下代码加入主题模板函数 functions.php 中:


add_filter( 'wp_is_application_passwords_available', '__return_false' );

(已经将此禁用功能加入 WordPress 后台优化加速插件)

如果你的网站没有启用 SSL,正常情况下,HTTP 访问是不会出现应用程序密码设置选项。如果你想要强制应用程序密码可用,可以将以下代码加入主题模板函数 functions.php 中:


add_filter( 'wp_is_application_passwords_available', '__return_true' );

如果你想限制某些用户可以使用 REST API 应用程序密码功能,可以将以下代码加入主题模板函数 functions.php 中:


function customize_app_password_availability( $available, $user ) {
    if ( ! user_can( $user, 'manage_options' ) ) {
        $available = false;
    }
 
    return $available;
}
 
add_filter( 'wp_is_application_passwords_available_for_user', 'customize_app_password_availability', 10, 2 );