PHP对接Discord OAuth2拉取用户信息返回401 Unauthorized错误
问题原因及解决方案
核心错误
你代码中构造Authorization请求头时,Bearer关键字和access token之间缺少空格,导致Discord服务端无法正确解析令牌格式,直接返回401未授权错误。
原错误代码段:
'Authorization' =>'Bearer' . $accessToken
修正后代码段:
'Authorization' =>'Bearer ' . $accessToken
其他可排查项
如果修改空格后问题仍未解决,可依次检查以下配置:
- 确认获取access token的响应中,
scope字段值包含你申请的identify和email权限,避免授权时权限缺失导致令牌无效 - 确认你使用的用户信息接口地址拼写无错误,Discord OAuth2获取当前用户信息的标准端点为
https://discord.com/api/users/@me,你当前使用的https://discord.com/api/oauth2/@me也可正常使用 - 检查Discord开发者后台配置的重定向URI,和代码中传的
URL1完全一致(包括http/https协议、域名、路径、尾斜杠都要完全匹配),否则即使拿到access token也属于无效令牌 - 验证你拿到的access token没有过期,Discord的access token有效期通常为7天,测试时避免使用过期令牌
内容的提问来源于stack exchange,提问作者user16519369
相关产品推荐
相关产品推荐

