您认为在有人使用以下端点时跳过 detect-browser javascript 是否有意义?
https://sitename.com/user-api-key/new
他们很可能是从应用程序重定向到那里,因此检查他们的 javascript 引擎是否足够好几乎没有意义,只会阻止想要为应用内使用生成 api 密钥的用户。
您认为在有人使用以下端点时跳过 detect-browser javascript 是否有意义?
https://sitename.com/user-api-key/new
他们很可能是从应用程序重定向到那里,因此检查他们的 javascript 引擎是否足够好几乎没有意义,只会阻止想要为应用内使用生成 api 密钥的用户。
但是,您仍然需要登录才能使其正常工作
是的,这就是问题所在。当 user-api-key/new 将您重定向到登录页面时,它会开始检查您的浏览器,而不是允许登录以生成 api 密钥,它会抱怨您的浏览器太旧了。如果用户只是来生成 api 密钥,是否可以跳过这些检查?
是的,这就是问题所在,它基本上是在要求一种不使用 JavaScript 的登录方式,鉴于我们支持的众多身份验证选项和垃圾邮件防护措施,这极其复杂。
不需要无javascript,只是登录表单不需要像网站其他地方那样使用所有花哨的功能?至少对于传递到 auth/oauth2_basic 似乎是不需要的,因为 99% 是通过标头和重定向完成的。我有一个在 SailfishOS 上的应用程序,它使用 .json 和传递 api-key 完全正常工作,这很好,因为那里的浏览器是基于 esr78 Firefox 的,并且在大多数 discourse 实例中被阻止,但获取 api-key 的唯一方法似乎是手动输入 200 多个字符的 URL 在桌面上,然后将生成的代码粘贴回手机进行解码,这简直是荒谬的。
5 个帖子被拆分到一个新主题:用户 API 密钥应使用 OAEP 填充
各位。我之前使用用户 API 密钥通过第三方客户端进行登录。它以前运行得很好。但现在我在一些网站上收到一条错误消息
糟糕
为该讨论论坛提供支持的软件遇到了意外问题。我们对造成的不便深表歉意。
有关错误的详细信息已记录,并生成了自动通知。我们会进行查看。
无需进一步操作。但是,如果错误状况持续存在,您可以通过在网站的反馈类别中发布讨论主题来提供更多详细信息,包括重现错误的步骤。
在最近的版本中此功能是否有过更改?
您是指“登录”吗?我认为 Discourse Connect 可能是更好的方法,尽管我不知道您实际在做什么。
您需要查看日志以获取有关错误的更多信息。
我正在运行自定义 UI,因此需要代表用户执行操作。为此,我正在使用用户 API 密钥。
为此,我正在使用以下 URL
https://discussion.fedoraproject.org/user-api-key/new?auth_redirect=discourse%3A%2F%2Fauth_redirect&application_name=DisCorkie&client_id=019695ed-8b7e-71b1-b55e-7efe8be1e9ae&scopes=read%2Cwrite%2Cnotifications%2Cpush%2Csession_info&push_url=https%3A%2F%2Fherxbktlunuawewahana.supabase.co%2Ffunctions%2Fv1%2Fdiscourse-webhook&public_key=-----BEGIN+PUBLIC+KEY-----%0AMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD%2BNgNuAMv2ZSSR95V1B%0Afla9n3HbCPxAFB5%2B%2BitC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe%2BfgtS5F3Q%0AGvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3%0A4eExqEYoGK7tBxr3%2FnVYO%2FogOaibzhoZRiSh69gq6ptXWN9Pka%2Fb3%2Fp2hWF5MSwG%0AK39LiZKOzaga%2BsA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX%0AKakxrmZzWwibN%2Bzboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k%2FaSWFAe8FO0doQ%0AxVoh9qVhlvPq3DdLhcjC0djVNti3X%2BYC2bwUDSp%2BFhrLh%2BsYribCAp6P8TyZ5TZy%0Aw0WnDCatK%2FzPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx%0Ag2mTR15Qe%2FRh6yY4fB610mcut%2BBU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK%2BVVC%0AfMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg%0A4teQs4VecqIe%2Bv6p7BurFgwlKZyWN0n89u8%2BXihwwwOcVp1UHblqbl%2FKYi5%2BgK6O%0AyahsLRGMGllNIsqarYCZ9nkCAwEAAQ%3D%3D%0A-----END+PUBLIC+KEY-----%0A&nonce=-1646128802
其中
参数
auth_redirect: discourse://auth_redirect
application_name: DisCorkie
client_id: 019695ed-8b7e-71b1-b55e-7efe8be1e9ae
scopes: read,write,notifications,push,session_info
push_url: https://herxbktlunuawewahana.supabase.co/functions/v1/discourse-webhook
public_key:
-----BEGIN PUBLIC KEY-----
MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAkD+NgNuAMv2ZSSR95V1B
fla9n3HbCPxAFB5++itC9hlWEOfXZPToWAax5DuNUitzikLVWrldyRe+fgtS5F3Q
GvuzCtnFwyBNoIkuUva8uCzQ4K7T9RgnWIIfNsx2ONuk2GLhEeLUgb46F8VULbD3
4eExqEYoGK7tBxr3/nVYO/ogOaibzhoZRiSh69gq6ptXWN9Pka/b3/p2hWF5MSwG
K39LiZKOzaga+sA0lA0BgdAw7rvnUBfpikL33mqtEJ6JDPhG5KIvBxY2m18T63cX
KakxrmZzWwibN+zboe51Z49gtxJIiybaj5Yn7izPj39DKwiv5k/aSWFAe8FO0doQ
xVoh9qVhlvPq3DdLhcjC0djVNti3X+YC2bwUDSp+FhrLh+sYribCAp6P8TyZ5TZy
w0WnDCatK/zPq53Fja2OUa5N43Zr4rSiyQMSdBaeOJwF33nOAHwztkDwOJvSh6fx
g2mTR15Qe/Rh6yY4fB610mcut+BU1oV4SEbxHYyroTaS06oO6k4EmvgJTiWK+VVC
fMGgFvoPXktKckK0q7xj32PiSTVlYURb27ap7yAHzFKePYkJdo0Sd3Jzghe1RdSg
4teQs4VecqIe+v6p7BurFgwlKZyWN0n89u8+XihwwwOcVp1UHblqbl/KYi5+gK6O
yahsLRGMGllNIsqarYCZ9nkCAwEAAQ==
-----END PUBLIC KEY-----
nonce:-1646128802
它重定向到 /login,浏览器成功调用 /session/csrf,到目前为止没有问题。
但是,当浏览器调用 /auth/oauth2_basic 时,我收到一个 500 错误。
响应是这个错误消息,没有其他信息。
Discourse hub 执行类似的身份验证流程,但它有效。我是否遗漏了什么?
/logs 中有什么吗?
经过一些调查,我发现这个问题是由于我使用了 4096 位密钥造成的。我将其更改为 2048 位后,它就能正常工作了。
这个密钥大小是必需的吗?有文档记录在案吗?