2009-07-16 2 views
2

djangoアプリケーションからdjangoユーザを作成し、検証リンク付きのEメールを送信してユーザ作成を確認します。Django。メールでユーザ作成を確認する

どのように安全にユーザの詳細から、このリンクを生成することができます(私は、ランダムな値を生成し、DBに格納したくない、と私は、このためにPinaxような任意の外部モジュールを使用したくない)

答えて

4

http://bitbucket.org/ubernostrum/django-registration/wiki/Home

これは は、Djangoのベースのプロジェクトのための柔軟なユーザ登録 を提供する単純なアプリケーションです:あなたは、グラブジャンゴ登録を行って、行って、それを呼び出すことになるでしょう。デフォルト セットアップはかなり一般的な ワークフローを実装しています

  1. ユーザーは、アカウントにサインアップ。
  2. ユーザーには、 アカウントを有効にする手順が記載されたメールが届きます。
  3. ユーザーは、サイトをアクティブにして使用を開始します。それを統合して使用する方法について

ドキュメント:http://bitbucket.org/ubernostrum/django-registration/src/tip/docs/overview.txt

それはREGキー、タイムアウト時間とアカウントを活性化するためのすべての処理を管理します。

私はわずかな改造でこれを数回使用しました。テストに送信するためにgmailアカウントを使用してもテストを開始するのは非常に簡単です。

Gmailアカウントをテストするためのアプリで、あなたのsettings.pyにこれを追加します。

EMAIL_USE_TLS = True 
EMAIL_HOST = 'smtp.gmail.com' 
EMAIL_HOST_USER = '[email protected]' 
EMAIL_HOST_PASSWORD = 'YOURPASSWORD' 
EMAIL_PORT = 587 

をまた、ジャンゴ・プロファイルは、このジャンゴ登録キットに素晴らしい付加である:http://bitbucket.org/ubernostrum/django-profiles/wiki/Home

1

あなたは

from django.utils.hashcompat import sha_constructor 

salt = "secret_salt" 
confirmation_key = sha_constructor(salt + email_address).hexdigest() 

を入力し、確認リンクを検証リンクのクエリ文字列の一部として送信できます。私はどれくらい安全なのかは分かりません。

なぜあなたはデータベースなしでそれをしたいですか?これにアプローチするには、標準(dbを使用)の方法でdjango-email-confirmationを見てください。

関連する問題