2011-10-03 39 views
27

Tôi muốn cuộn hệ thống đăng nhập của riêng mình cho ứng dụng Google App Engine trăn của tôi (thay vì sử dụng Google users api) của Google.Webapp2 để xác thực và đăng nhập

Tôi đang sử dụng webapp2 và tôi nhận thấy rằng có một mô-đun webapp2_extras.authincomplete auth tutorial.

Có ai biết làm thế nào tôi có thể sử dụng API này để tạo ra:

  • Đăng ký tài khoản (mất một email và mật khẩu, và có lẽ xác minh email)
  • Thành viên đăng nhập với email và mật khẩu

Khi tôi có email và mật khẩu, tôi sẽ lưu trữ nó ở đâu? Trong AuthStore? Và làm cách nào để tôi xác thực với AuthStore?

+0

Bạn có thể kiểm tra bài đăng trên blog này: [Xác thực người dùng với webapp2 trên Google App Engine] (http://blog.abahgat.com/2013/01/07/user-authentication-with-webapp2-on-google-app -động cơ/). Nó mô tả các bước bạn cần thực hiện để xây dựng lớp xác thực của riêng bạn bằng cách tận dụng các chức năng đã có trong webapp2. Đó là một thủ tục cần thiết để có được mã được liên kết trong câu trả lời của Eric. (Tiết lộ: Ban đầu tôi viết bài đó trong một nỗ lực để sửa chữa thiếu tài liệu) – abahgat

Trả lời

4

Cách thức và nơi bạn lưu trữ bằng chứng xác thực và thông tin người dùng hoàn toàn tùy thuộc vào bạn; mô-đun webapp2 mà bạn tham chiếu chỉ cung cấp giao diện mà bạn phải tuân theo nếu bạn muốn sử dụng các tính năng của nó. Một sự lựa chọn rõ ràng (có lẽ là hợp lý) sẽ là kho dữ liệu.

Tôi thực sự khuyên bạn nên sử dụng tích hợp sẵn trong OpenID support thay vì tự lăn của riêng mình. Bằng cách đó, bạn buộc người dùng phải tạo một tên người dùng và mật khẩu khác và bạn đang thực hiện toàn bộ lưu trữ mật khẩu và sự phức tạp về bảo mật cho chính mình.

+1

Tôi thường đồng ý với câu trả lời của bạn. Tôi thực sự đã thực hiện [đăng nhập xã hội của janrain] (http://www.janrain.com/products/engage/social-login) với openID, facebook, đăng nhập google, vv Tuy nhiên, tôi lo ngại có thể có một tỷ lệ đáng kể người dùng không thoải mái/không quen với đăng nhập OpenID/xã hội và họ sẽ không sử dụng trang web của tôi nếu tùy chọn duy nhất là đăng nhập bằng tài khoản khác. Bạn có nghĩ rằng mối quan tâm của tôi là hợp lệ? – zzz

+2

@EricGustavson Nó phụ thuộc hoàn toàn vào cơ sở người dùng của bạn. Có những người dùng khác sẽ không thoải mái khi tạo tài khoản mới cho trang web của bạn. OpenID và liên kết signin (ví dụ, facebook) đang ngày càng phổ biến hơn, tuy nhiên, vì vậy việc tối ưu hóa cho những người dùng này là một chút giống như tối ưu hóa cho IE6. –

+1

@NickJohnson - có cách nào tốt đẹp để hỗ trợ OpenID appengine tích hợp có thể chơi đẹp với facebook không? Cụ thể hơn, bạn có biết bất kỳ giải pháp tốt nào có thể tận dụng được xây dựng trong OpenID cho đăng nhập dựa trên OpenID và sử dụng cơ chế dựa trên OAuth 2.0 của facebook trong trường hợp người dùng muốn sử dụng đăng nhập facebook không?(Có nhìn vào nó, ấn tượng của tôi là nó thực sự là cần thiết để cuộn cơ chế xác thực của riêng bạn nếu cả hai OpenID và OAuth được yêu cầu). –

3

Câu trả lời mới cho câu hỏi cũ: Bất kỳ ai muốn thêm xác thực riêng và đăng nhập vào webapp2 trên Google App Engine nên xem xét Google App Engine Boilerplate.

Đăng ký, đăng nhập, đăng xuất, đặt lại mật khẩu, đăng nhập liên kết (Google, Twitter, Facebook, v.v.), hồ sơ người dùng, v.v. được triển khai.

Các công nghệ được thừa hưởng bao gồm, Python 2.7, NDB, Jinja2, WTForms, unittest, webtest, pyquery, OpenID (Google App Engine) và OAuth2 (dành cho nhà cung cấp đăng nhập được liên kết không hỗ trợ OpenID).

Bản trình diễn trực tuyến là here.

+0

Liên kết demo trực tuyến của bạn đã chết - thật đáng tiếc! Có thể đã được tốt để xem nó. – Fritz

+0

[** Liên kết demo trực tuyến **] (http://appengine.beecoss.com/) đang hoạt động trở lại. – kjhughes

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