在凭据中的用户名中包含“@” URL 基本身份验证

Having "@" in username in credentials URL Basic authentication

我正在尝试使用 Stripe webhook 调用 API 以将事件推送到 API。据我了解,stripe 有一种使用 https://{username}:{password}@myAPI.com 为 webhook 添加基本身份验证的方法,然后 base64 将用户名和密码编码为基本 {based64encodedToken} 到端点https://myAPI.com

但是,基本认证的用户名中包含“@”,例如:user1@myapp-1awjn。这会弄乱 API。有人知道如何逃脱吗?

根据 spec.

,您在 URI 的 authority 部分中描述的 userinfo 不是有效形式

The user information, if present, is followed by a commercial at-sign ("@") that delimits it from the host.

如果你需要这个,你需要URL编码@并在你的系统中解析,例如https://user%40cool@example.com/