You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyOTP生成OTP二维码后,Microsoft Authenticator不显示Logo求助

Microsoft Authenticator不显示自定义OTP Logo的原因及解决办法

问题背景

使用PyOTP生成带image参数的OTP URI,二维码可被Microsoft Authenticator识别,OTP验证正常,但始终显示账户首字母而非指定Logo。相关代码:

import pyotp
totp = pyotp.TOTP("secret")
uri = totp.provisioning_uri(name='User', issuer_name='Example', image='https://ecoedgeai.com/wp-content/uploads/2024/02/cropped-eeai-logo-1-95x54.png')
print(uri)

生成的URI:

otpauth://totp/Example:User?secret=secret&issuer=Example&image=https%3A%2F%2Fecoedgeai.com%2Fwp-content%2Fuploads%2F2024%2F02%2Fcropped-eeai-logo-1-95x54.png

核心原因

Microsoft Authenticator对自定义Logo的显示有严格限制,主要包括以下几点:

  • 优先使用内置数据库Logo:如果你的issuer_name(如示例中的Example)存在于Microsoft的官方issuer数据库中,Authenticator会直接使用数据库里的官方Logo,忽略image参数。
  • 图片参数的硬性要求:
    • 图片必须为正方形(推荐64x64或128x128像素),非正方形图片会被拒绝显示。你的图片是95x54,不符合比例要求。
    • 图片URL必须是HTTPS协议,且无跳转(直接返回图片资源)。
    • 图片服务器需配置正确的CORS跨域头,允许Microsoft Authenticator的访问请求。
  • 版本兼容性:旧版本的Microsoft Authenticator可能完全不支持image参数,需确保应用是最新版本。

解决步骤

  • 调整图片为正方形尺寸(如64x64),重新上传后更新URI中的image链接。
  • 使用curl检查图片URL的响应头,确认无重定向且包含正确的CORS头(如Access-Control-Allow-Origin: *):
    curl -I https://your-image-url.png
    
  • 更新Microsoft Authenticator到应用商店的最新版本。
  • 如果以上都无效,可尝试将你的issuer提交至Microsoft的官方数据库(此流程需符合Microsoft的品牌规范,周期较长)。

内容的提问来源于stack exchange,提问作者Zain Ul Abidin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:52:26