2011-12-01 51 views
12

Tôi đang xây dựng một ứng dụng độc lập couchdb. Chúng được gọi là couchapps. Ý tưởng là bản thân cơ sở dữ liệu được phục vụ trên cổng 80 và trả về HTML và hoạt động như trang web thực tế. Đây là một ý tưởng rất mạnh mẽ và tôi hoàn toàn ngạc nhiên bởi khái niệm mới về việc có mã của bạn sống bên trong cơ sở dữ liệu của bạn.Đăng ký người dùng CouchApp

Nhưng tôi đang gặp một số vấn đề với đăng ký người dùng. Một trong những xây dựng vào couchdb cho phép cookie được thiết lập và làm cho nó thực sự dễ dàng để cắm nó vào trang web của bạn. Nhưng có một số điều khá quan trọng còn thiếu mà ứng dụng của tôi yêu cầu để nói rằng nó có một hệ thống đăng ký người dùng "thích hợp".

  1. Không có xác minh đăng ký. Không có email nào được gửi, không có hình ảnh xác thực nào được hiển thị. Điều này có nghĩa là bất kỳ ai cũng có thể spam cơ sở dữ liệu _users của bạn và tạo bao nhiêu người dùng mới tùy ý.

  2. Nếu người dùng quên mật khẩu của họ, sẽ không có cơ sở nào để giúp họ khôi phục mật khẩu.

Bất kỳ ý tưởng làm thế nào tôi có thể vượt qua những vấn đề này mà không làm bất kỳ Hardcore phát triển Erlang ở một mức độ thấp hơn (không phải là một anh chàng Erlang)? Nó cũng sẽ là tuyệt vời nếu ai biết nếu tôi có thể được sử dụng OAuth để xác thực đối với tài khoản Twitter hoặc GitHub và có tích hợp dường như với cách xử lý dữ liệu couchdb (bên trong các hàm validate_doc_update).

Cảm ơn bạn

Trả lời

11

Trong khi xây dựng trong cơ sở dữ liệu người dùng có thể làm việc, tôi sẽ không khuyên bạn nên nó cho công việc bạn mô tả. Dưới đây là một số tùy chọn khác:

ID trình duyệt

Tôi thực sự khuyên bạn nên sử dụng BrowserID. IrisCouch đã cung cấp một plugin để CouchDB đây:

https://github.com/iriscouch/browserid_couchdb

này sẽ chăm sóc các công việc đăng ký bình thường.

Nếu bạn muốn mang nó một bước xa hơn và người dùng phải "Khá Anonymous", bạn có thể làm theo các ví dụ về couchapp này được gọi là "Mingle"

https://github.com/thedod/Mingle

Twitter Integration

Max Dự án "DataCouch" của Ogden có đăng nhập qua twitter, mặc dù nó đang sử dụng một số bộ vi xử lý bên ngoài của Node để nó hoạt động.Xem ở đây:

https://github.com/maxogden/datacouch/blob/master/processors/auth/twitterauth.js

Facebook tích hợp

https://github.com/ocastalabs/CouchDB-Facebook-Authentication

OpenID

https://github.com/mcaprari/couchdb-openid


Tôi không nghĩ rằng bạn có thể sử dụng oauth hoàn toàn với Couch, một s bài này gợi ý:

http://bennolan.com/2011/01/11/couchdb-oath.html

nên gần gũi nhất, bạn sẽ đạt được điều đó là sau những gì Datacouch đã làm.

Hy vọng những đề xuất này sẽ hữu ích.

+0

Cảm ơn. Điều này là khá nhiều tất cả các tài liệu tôi cũng stumbled khi. Và cũng có vẻ là một vấn đề khác (sau khi nói chuyện với Max Odgen) với thời gian hết hạn Cookie kéo dài cho đến khi trình duyệt của bạn mở ... điều đó hoàn toàn khủng khiếp. Tôi sẽ chấp nhận câu trả lời của bạn và hy vọng 1.2 sẽ khắc phục một số điều này. –

+2

Bạn có thể sử dụng oauth từ 1.3 –

Các vấn đề liên quan