Djangoサードパーティログイン

3213 ワード

主な翻訳https://django-social-auth.readthedocs.org/en/latest/index.htmlあ、適当なところに自分の理解を加えて、あるところは添削があります.
ステップ1:依存関係のインストール
pip install django-social-auth
(またはeasy_installでインストールするか、cloneの後に/setupを構成するか)を参照してください.https://django-social-auth.readthedocs.org/en/latest/installing.html#get-a-copy
インストール後、必要なsettings構成が完了するとrun serverにエラーが発生します!wtfは、もともと一緒にインストールされていた最新版python-social-authが合わなかった.
git checkout tags/v0.1.9
sudo python setup.py install
このバージョンを取り出したら、インストールして、and voila!
ステップ2、構成
settings.pyに追加
INSTALLED_APPS = (
    ...
    'social_auth'
)

加入後、データベースを同期します.(social_auth自体はいくつかのmodelsを持っています)
./manage.py syncdb

そして、サポートするサードパーティのWebサイトを追加します.
AUTHENTICATION_BACKENDS = (
    'social_auth.backends.twitter.TwitterBackend',
    'social_auth.backends.facebook.FacebookBackend',
    'social_auth.backends.contrib.douban.Douban2Backend',
    'social_auth.backends.contrib.qq.QQBackend',
    'social_auth.backends.contrib.weibo.WeiboBackend',
     #  ,   QQ       ,    。  ⬇️
     #http://segmentfault.com/blog/duoduo3_69/1190000000635319
    'django.contrib.auth.backends.ModelBackend',
)

上の最後の一言をなくさないでください.ありがとうございます.
そして!再urlsファイルに追加
urlpatterns = patterns('',
    ...
    url(r'', include('social_auth.urls')),
)

そして!サードパーティのウェブサイトに行ってkeyとsecretを申請しました.次に記入します(settings.py)
TWITTER_CONSUMER_KEY         = ''
TWITTER_CONSUMER_SECRET      = ''

リダイレクトしたURL(settings.py)を書きます
LOGIN_URL          = '/login-form/'
LOGIN_REDIRECT_URL = '/logged-in/'
LOGIN_ERROR_URL    = '/login-error/'

ジャンプリンクをカスタマイズする必要がある場合は、LOGIN_とURLが異なる:
SOCIAL_AUTH_LOGIN_REDIRECT_URL = '/another-login-url/'

新しく登録されたユーザージャンプリンクは、このように定義できます.
SOCIAL_AUTH_NEW_USER_REDIRECT_URL = '/new-users-redirect-url/'

新しい関連付けられたユーザーは、次のように定義できます.
SOCIAL_AUTH_NEW_ASSOCIATION_REDIRECT_URL = '/new-association-redirect-url/'

アカウントの切断:
SOCIAL_AUTH_DISCONNECT_REDIRECT_URL = '/account-disconnected-redirect-url/'

ユーザーが関連付けを解除した後、次のようにジャンプします.
SOCIAL_AUTH_BACKEND_ERROR_URL = '/new-error-url/'

認証と関連口座のジャンプアドレスを長めに書くと、衝突を防ぐことができます.
SOCIAL_AUTH_COMPLETE_URL_NAME  = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'

inactiveを定義すると、このようなユーザーは次のようにジャンプできます.
SOCIAL_AUTH_INACTIVE_USER_URL = '...'#    LOGIN_ERROR_URL

そして!元のuser modelを上書きする場合は、まず次のことを説明します.
SOCIAL_AUTH_USER_MODEL = 'myapp.CustomUser'

データベースによっては、UserSocialAuthフィールドに影響を与える可能性のあるフィールド値の制限が課されます.
SOCIAL_AUTH_UID_LENGTH = <int>

233(mysql)、または767(InnoDB)に変更
Association and Nonce keys:(この部分はわかりません)
他の構成は重要ではありません.必要があれば公式文書を調べて、(一番上に貼ってある)、あるいは読めないメッセージを教えてください.