2012-02-23 43 views
6

Bu konuya oldukça yeni olduğumu itiraf etmeliyim, özellikle de erlang için yeni. Şu anda, çeşitli kimlik doğrulama işleyicileri ile uğraşmaya çalışıyorum - hedef facebook, twitter ve benzeri çalışan bir "yetkilendirilmiş kimlik doğrulama" sahip olmaktır.couchdb özel kimlik doğrulama işleyicisi

  1. couchdb'nin oAuth uygulamasının, ihtiyacım olanın tam tersi olduğunu anladığım kadarıyla. Bunu kanepe kullanıcıları için belirteçleri oluşturmak için kullanabilir, ancak twitter accessTokens/sırlarını kabul etmemek ve bunu bir kanepe kullanıcısına eşlemek için kullanabilirsiniz.
  2. Nodejs ile twitter'e karşı kimlik doğrulaması için gereken şeyi tam olarak buldum ve bundan sonra özel bir kanepeden düz metin şifresini alıp bir kanepe çerezi oluşturmak için bunu _session-API ile birlikte kullanıyorum.

Şimdi düz metin şifrelerinin saklanmasını engellemeye çalışıyorum. Ben proxy_authentification_handler kullanmak için duydum, ama ben ya çok deneyimsiz ya da kullanmak için çok aptal olduğum gibi görünüyor. (Anladığım kadarıyla) yaptığım couch_httpd_auth doğru girdileri

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 

ve ayrıca bölüm 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 

olarak da (i false proxy_use_secret set docs açıklamalarda belirtildiği erişim adımları olmadan kimlik doğrulamasına izin vermek için ilk adımlar.

Şimdi bir şey etkilemiyor gibi görünmektedir http://localhost:5984/_utils/config.html?uname=user1&roles=user bir GET ...

Hiç kimse çalışan işim var ne zaman? Bir şey mi eksik? Ya da erlang kodlama olmadan özel bir kimlik doğrulama işleyicisi uygulamak için herhangi bir şans var mı?

Yardımlarınız için teşekkürler URL parametresi hiçbir şey yapmıyor

cevap

2

için çok. Eğer original bug baktığınızda kullanıcı adı ve rolleri URL tarafından değil geçti ancak HTTP olduğunu göreceksiniz başlıkları:

  • X-Auth-CouchDB-KullanıcıAdı: kullanıcı adı, (couch_httpd_auth bölümünde x_auth_username)
  • X -Auth-CouchDB-Roles: kullanıcı rolleri, virgülle ayrılmış roller listesi (couch_httpd_auth bölümünde x_auth_roles)
  • X-Auth-CouchDB-Token: yetkilendirmenin kimliğini doğrulamak için jeton (couch_httpd_auth bölümünde x_auth_token). Bu simge gizli anahtar ve kullanıcı adından oluşturulan bir hmac-sha1'dir. Gizli anahtar, istemci ve couchdb düğümünde aynı olmalıdır. Gizli anahtar ini'nin couch_httpd_auth bölümünde gizli anahtardır. Gizli anahtar tanımlanmamışsa bu simge isteğe bağlıdır.

Bu başlık bilgisini sağladığınızda, kimlik doğrulaması aslında reklamı yapılan şekilde çalışır.

İlgili konular