百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
返回工具页/返回 Issues 列表
#1604·answer

Gravatar hash 是从未小写邮件中计算出来的, 所以混合大小写账户会给一个标识

作者: Andy-Sverdlov-LucaNet创建于 2026年9月9日更新于 2026年9月9日

□ 描述错误

`pkg/重力'。 Get AvatarURL ' hashes the email address 而不降低电子邮件地址:

开始 //pkg/重力克/重力克.go func GetAvatarURL( BaseURL, 电子邮件字符串) 字符串 { hasher:=sha256. Sum256([]字节(字符串)。 TrimSpace(电子邮件)))). 散列 : = hex. Encode ToString( hasher [:]) 返回基数URL + hash {\fn黑体\fs22\bord1\shad0\3aHBE\4aH00\fscx67\fscy66\2cHFFFFFF\3cH808080}你觉得呢?


Gravatar规格要求地址被修剪**并小写**
在散列前,所以任何存储地址包含大写字母的账户
给Gravatar的地址打个招呼 用户的外观从未找到,
代号为倒置(由UI所添加)

有两个细节 很难从外面工作:

1. " 内部/服务/siteinfo common/siteinfo service.go " 中的 " 被选中的Avatar "
从每个响应的存储地址重算重力 URL, for
既包括`默认-avatar:gravatar',也包括明确的每个用户`avatar'。 类型 :
(原始内容存档于2018-09-29). gravatar. 在设置中选择“ Gravatar ” —— 配置文件存储正确的 URL
(UI hashes 正确,见下文) 但服务器在读取时覆盖它 。
2. 后端的任何内容都不能使存储地址正常化。 "grep -rn to Lower" (英语).
内部/ QQ grep - i 邮件“ 返回无, 外部日志路径副本
服务商的地址逐字
(`内部/服务/用户 外部-login/用户-外部-login-service.go:258',
'userInfo.Mail=外部用户Info. 电子邮件。 使用OIDC/OAuth2连接器
外壳是身份提供者发送的 所以会创建账户
错误的处理而没有任何用户或管理动作。

网络用户界面已经正确地做了这个,这就是为什么错误很容易被错过——
`ui/src/pages/用户/定居/Profile/index.tsx':


const str = res.e mail.to LowerCase (.trim (); 存档副本.
散列轴=sha256;

在设置 → 配置文件中显示用户真实的重力预览 。 每个其它表面(问题列表、答案、评论、用户卡)显示 德顿. 前端和后端对同一账户的散列有分歧.

□ 重现

  1. 管理 – 设置 – 用户:将"default avatar"设置为"Gravatar".
  2. 创建一个电子邮件地址包含大写字母的用户,例如: `[email protected]',并在 gravatar.com 有相机图像.
  3. 打开列出该用户的任何页面(或其简介)。
  4. 代号为 " 重力 " 。
  5. 在不回答的情况下确认原因:

控制台 $ printf '%s' '[email protected]' \ sasum - a 256 # Gravatar 所期望的 $ printf '%s' '[email protected]' \ sasum - a 256 # Answer sends


要求`https://www.gravatar.com/avatar/<hash>?d=404 ' 返回200。
第一次散列,第二次404个
6. 设置 → 配置文件在其预览中显示正确的外观, 因为 UI
散列前的小写 。

□ 预期行为

`GetAvatarURL' 在散列前小写地址, 匹配重力
规格和现有的前端行为,所以已注册
. . . . . . .

内容来源: apache/answer

查看 GitHub 原文在 GitHub 查看讨论