我正在为CouchDB使用SSL的基本身份验证,我想知道,如果我的密码中有符号,我如何让它工作,并且不会与网址冲突?
例如:https://username:p@$$word@couchdb.domain.com/db
任何帮助都会摇滚!
答案 0 :(得分:1)
基本身份验证使用HTTP请求中的Authorization
标头来传递您的用户名和密码,而不是URL。您发布的URL是某些浏览器支持的快捷方式(浏览器会将URL中的用户名/密码转换为相应的标头)。 URL格式实际上不是基本身份验证规范的一部分(有关更完整的详细信息,请参阅RFC:https://www.ietf.org/rfc/rfc2617.txt)。
有了这个,是的,基本的auth支持符号,你不必担心这些符号在URL中是否具有特殊含义。但是,当涉及到字符集时,基本的auth规范是不明确的,并且无法指定使用哪个字符集来编码用户名和密码。因此,7位ASCII范围之外的任何字符都可能导致问题,这取决于服务器端的实现。
答案 1 :(得分:0)
要接收授权,客户端会在凭证中的base64编码字符串中发送用单个冒号(“:”)字符分隔的用户标识和密码。
我不明白为什么当the official Couch DB documentation明确提出更标准的身份验证方式时,您认为必须以明文形式将凭据作为网址的一部分发送。