Drupal 9 Simple OAuth(v5.2.3)令牌验证失败及密钥生成异常问题
Drupal 9 + Simple OAuth v5.2.3 令牌生成问题解决指南
问题1:模块自动生成的公私钥文件为空
- 检查目录权限:确保web服务器用户(如www-data、apache)对密钥存储目录(默认
/sites/default/files/simple_oauth)有读写权限,执行以下命令调整:chown -R www-data:www-data sites/default/files/simple_oauth chmod -R 755 sites/default/files/simple_oauth - 排查安全模块限制:如果服务器开启了SELinux或AppArmor,可能会阻止模块写入文件,临时关闭测试(
setenforce 0关闭SELinux),或调整安全规则允许写入目标目录。 - 直接手动生成密钥:跳过模块自动生成流程,用OpenSSL命令生成合规密钥(见问题2步骤)。
问题2:手动生成密钥后出现“Access token could not be verified”错误
- 生成合规RSA密钥:必须用OpenSSL生成匹配的公私钥对,命令如下:
# 生成无密码的2048位私钥 openssl genrsa -out private.key 2048 # 从私钥导出对应公钥 openssl rsa -in private.key -pubout -out public.key - 确认密钥路径配置:在Simple OAuth模块设置页,填写绝对路径(如
/var/www/html/sites/default/files/simple_oauth/private.key),避免相对路径导致系统无法读取密钥。 - 验证密钥配对:执行以下命令检查公私钥是否匹配,两个命令输出的MD5值必须完全一致:
openssl rsa -in private.key -noout -modulus | openssl md5 openssl rsa -in public.key -pubin -noout -modulus | openssl md5 - 检查请求参数与权限:确保令牌请求的
grant_type、client_id、client_secret等参数无拼写错误,同时给对应客户端角色分配use simple oauth权限。 - 清除Drupal缓存:执行
drush cr刷新系统配置,确保密钥设置生效。
内容的提问来源于stack exchange,提问作者Ali Mhanna
相关产品推荐
相关产品推荐

