我必须承认我对这个话题相当新,特别是对erlang的新手。目前,我正在尝试使用各种身份验证处理程序 - 目标是在facebook,twitter等上进行“委托身份验证”。
现在我试图避免存储明文密码。我听说过使用proxy_authentification_handler,但看起来我要么太缺乏经验,要么使用它太愚蠢。我在couch_httpd_auth
中制作了(据我所知)正确的条目couch_httpd_auth auth_cache_size 50
authentication_db _users
authentication_redirect /_utils/session.html
require_valid_user false
proxy_use_secret false
secret xxxxxxxxxxxx
timeout 43200
x_auth_roles roles
x_auth_token token
x_auth_username uname
以及httpd
部分httpd allow_jsonp true
authentication_handlers {couch_httpd_auth, proxy_authentification_handler},{couch_httpd_auth, cookie_authentication_handler}, {couch_httpd_auth, default_authentication_handler}
bind_address 127.0.0.1
default_handler {couch_httpd_db, handle_request}
port 5984
secure_rewrites false
vhost_global_handlers _utils, _uuids, _session, _oauth, _users
正如docs中的评论中所提到的,我将proxy_use_secret设置为false(对于第一步),以允许在没有访问令牌的情况下进行身份验证。
当我现在对http://localhost:5984/_utils/config.html?uname=user1&roles=user进行GET时似乎不会影响任何事情......
有人有过这样的东西吗?我错过了什么吗?或者是否有机会在不编码erlang的情况下实现自定义身份验证处理程序?
非常感谢你的帮助
答案 0 :(得分:2)
URL参数没有做任何事情。当您查看original bug时,您会看到用户名和角色不是通过URL传递,而是通过HTTP标头传递:
一旦您提供这些标头信息,身份验证实际上就像宣传的一样。