WordPress 5.6 正式引入 REST API 身份验证和应用程序密码功能,据说可以让第三方应用无缝并且安全地连接到用户的网站。于是考虑要不要整合到小程序授权登录上,通过搜索引擎查找了相关内容,查询了 WordPress 相关开发文档,如果想要类似于 OAuth 2 授权功能,应用程序密码不支持此功能,据说也没有计划。如此一来,似乎这个应用程序密码功能并不太适合小程序开发。
既然不太适合小程序功能,在没有开发 App 的需求情况下,可以考虑禁用此功能。
默认情况下,通过 SSL / HTTPS 服务的站点上的所有用户都可以使用应用程序密码。可以使用 wp_is_application_passwords_available
和 wp_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 );