Node.js   发布时间:2022-04-24  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了node.js – couchdb自定义身份验证处理程序大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我不得不承认我对这个话题还不熟悉,特别是对erlang的新手.目前,我正在尝试使用各种身份验证处理程序 – 目标是在facebook,twitter等上进行“委托身份验证”.

>据我所知,couchdb的oAuth实现与我需要的完全相反.您可以使用它为沙发用户创建令牌,但不能接受Twitter accessTokens / secrets并将其映射到沙发用户.
>我在datacouch中找到了我需要的东西 – 使用Nodejs对twitter进行身份验证,然后从私人沙发中获取明文密码,并使用_session-API创建沙发cookie.

现在我试图避免存储明文密码.我听说过使用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},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的情况下实现自定义身份验证处理程序?

非常感谢你的帮助

解决方法

URL参数没有做任何事情.当您查看 original bug时,您将看到用户名和角色不是通过URL传递,而是通过http标头传递:

> X-Auth-CouchDB-UserName:username,(couch_httpd_auth部分中的x_auth_userName)
> X-Auth-CouchDB-Roles:用户角色,由逗号分隔的角色列表(couch_httpd_auth部分中的x_auth_roles)
> X-Auth-CouchDB-Token:用于验证授权的令牌(couch_httpd_auth部分中的x_auth_token).此令牌是从密钥和用户名创建的hmac-sha1.客户端和couchdb节点中的密钥应该相同.秘密密钥是ini的couch_httpd_auth部分中的密钥.如果未定义密钥,则此标记是可选的.

一旦提供这些标头信息,身份验证实际上就像宣传的一样.

大佬总结

以上是大佬教程为你收集整理的node.js – couchdb自定义身份验证处理程序全部内容,希望文章能够帮你解决node.js – couchdb自定义身份验证处理程序所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。