django-allauth入門学習と使用の詳細


django-allauthは、ウェブサイトのアイデンティティ検証、ユーザの登録登録およびアカウント管理、および第三者(社交)アカウントのアイデンティティ検証を解決するために一体化されたDjangoアプリケーションである。
django-allauthを使用するつもりであることを知っている以上、ここでは基本的なdjango知識を身につけていると仮定します。
セットアップと基本設定
インストール

pip install django-allauth
基本設定
1.あなたのプロジェクトのsettings.pyにあります。 以下に対応するコードを追加します。

TEMPLATES = [
  {
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
      'context_processors': [
        'django.template.context_processors.request',
      ],
    },
  },
]

AUTHENTICATION_BACKENDS = (
  'django.contrib.auth.backends.ModelBackend',
  'allauth.account.auth_backends.AuthenticationBackend',
)

INSTALLED_APPS = (
  
  #    django   app     ,        
  'django.contrib.auth',
  'django.contrib.sites',

  'allauth',
  'allauth.account',
  'allauth.socialaccount',

  #    django-allauth         ,         ,     :
  'allauth.socialaccount.providers.amazon', #    
  'allauth.socialaccount.providers.angellist',
  'allauth.socialaccount.providers.asana',
  'allauth.socialaccount.providers.auth0',
  'allauth.socialaccount.providers.authentiq',
  'allauth.socialaccount.providers.baidu', #   
  'allauth.socialaccount.providers.basecamp',
  'allauth.socialaccount.providers.bitbucket',
  'allauth.socialaccount.providers.bitbucket_oauth2',
  'allauth.socialaccount.providers.bitly',
  'allauth.socialaccount.providers.coinbase',
  'allauth.socialaccount.providers.dataporten',
  'allauth.socialaccount.providers.daum',
  'allauth.socialaccount.providers.digitalocean',
  'allauth.socialaccount.providers.discord',
  'allauth.socialaccount.providers.douban', #   
  'allauth.socialaccount.providers.draugiem',
  'allauth.socialaccount.providers.dropbox',
  'allauth.socialaccount.providers.dwolla',
  'allauth.socialaccount.providers.edmodo',
  'allauth.socialaccount.providers.eveonline',
  'allauth.socialaccount.providers.evernote',
  'allauth.socialaccount.providers.facebook',
  'allauth.socialaccount.providers.feedly',
  'allauth.socialaccount.providers.fivehundredpx',
  'allauth.socialaccount.providers.flickr',
  'allauth.socialaccount.providers.foursquare',
  'allauth.socialaccount.providers.fxa',
  'allauth.socialaccount.providers.github', # GitHub
  'allauth.socialaccount.providers.gitlab',
  'allauth.socialaccount.providers.google',
  'allauth.socialaccount.providers.hubic',
  'allauth.socialaccount.providers.instagram',
  'allauth.socialaccount.providers.kakao',
  'allauth.socialaccount.providers.line',
  'allauth.socialaccount.providers.linkedin',
  'allauth.socialaccount.providers.linkedin_oauth2',
  'allauth.socialaccount.providers.mailru',
  'allauth.socialaccount.providers.mailchimp',
  'allauth.socialaccount.providers.meetup',
  'allauth.socialaccount.providers.naver',
  'allauth.socialaccount.providers.odnoklassniki',
  'allauth.socialaccount.providers.openid',
  'allauth.socialaccount.providers.orcid',
  'allauth.socialaccount.providers.paypal',
  'allauth.socialaccount.providers.persona',
  'allauth.socialaccount.providers.pinterest',
  'allauth.socialaccount.providers.reddit',
  'allauth.socialaccount.providers.robinhood',
  'allauth.socialaccount.providers.shopify',
  'allauth.socialaccount.providers.slack',
  'allauth.socialaccount.providers.soundcloud',
  'allauth.socialaccount.providers.spotify',
  'allauth.socialaccount.providers.stackexchange',
  'allauth.socialaccount.providers.stripe',
  'allauth.socialaccount.providers.trello',
  'allauth.socialaccount.providers.tumblr',
  'allauth.socialaccount.providers.twentythreeandme',
  'allauth.socialaccount.providers.twitch',
  'allauth.socialaccount.providers.twitter',
  'allauth.socialaccount.providers.untappd',
  'allauth.socialaccount.providers.vimeo',
  'allauth.socialaccount.providers.vk',
  'allauth.socialaccount.providers.weibo', #     
  'allauth.socialaccount.providers.weixin', #   
  'allauth.socialaccount.providers.windowslive',
  'allauth.socialaccount.providers.xing',
  
)

SITE_ID = 1  #        

2.プロジェクトのurls.py(つまりsetting.pyと同じフォルダのurls.py)で 次の文を加えます。

urlpatterns = [
  url(r'^accounts/', include('allauth.urls')),
]
暖かいヒント:
もしあなたが知っているなら、使ったことがあります。 django.com ntrib.auth.urlsというモジュールを使うと、django-allauthを使ってから使えます。 allauth提供の account_ロゴ account_logout account_setこれらのURLsはもとのものに取って代わる。 ロゴ logout password()change…
3.プロジェクトのルートディレクトリ(つまり、manager.pyのフォルダ)で以下のコマンドを実行します。

python manage.py migrate
4.サーバを再起動します。
SNSアカウントの登録を追加します。
バックグラウンドの設定
注意:ウェブサイトを作るには、一般的に2つの環境があります。開発環境(つまり、ウェブサイトはローカルホスト上開発にあります。)と生産環境(つまりウェブサイトはサーバーに配置されています。) http://127.0.0.1:8000 生産環境は http://www.honkerzhou.com 簡単に説明するために、以下は直接使います。 あなたのドメイン名はホームページの住所の代わりになりますので、自分のホームページの住所をはっきり見分けてください。混乱しないようにしてください。
  • はバックグラウンド管理インターフェースに入ります。 あなたのドメイン名/admin/をクリックして、サイトをクリックして、中にサイトを追加して、ドメイン名は書きます。 あなたのドメイン名、名前は自由で、記入して保存します。
  • は、SNSアカウント(SOCIAL ACCOUNTS)におけるソーシャルアプリ(Social appication)にソーシャルアプリを追加し、関連情報(以下、GitHub SNSアカウントの登録をサポートする例)を記入する必要があります。
  • Provider:GitHubを選択する;
  • 名称(Name):自由に書いてもいいです。自分で見分けられたらいいです。GitHubを書いてください。
  • Cient idとSecret key:必要です。  GitHubで取得を申請します。ないかどうかは、サードパーティアプリケーションのCient idとSecret keyを取得することです。
  • Key:記入しなくてもいいです。
  • Sites:利用可能なsitesの下であなたのドメイン名を選択して、それを右の選択したsitesに移動して、ポイントを保存します。
  • サードパーティアプリケーションのCient idとSecret keyを取得します。
    1.GitHub
    GitHubに登録したら-->Settingsに入ります。Developer settings-->OAuth AppsでNew OAuthアプリに入ります。その後、手順に従って情報を記入します。
    注意:
  • Homepage URLはあなたのドメイン名を記入します。
  • Authorzation calback URLはあなたのドメイン名/accounts/github/login/calback/を記入します。
  • 検証と初歩使用
  • は重要です。管理人のアカウントをキャンセルしてください。
  • はこのURLに入ります。 ドメイン名/accounts/login/は、レイアウトが乱れて丑いページが表示されます。これはdjango-allauthが持参したテンプレートです。この時にGitHubアカウントを通じて登録してGitHub登録許可のヒントが出たら、前の方が正しいです。おめでとうございます。
  • ですが、ライセンス登録後にこのURLにリンクされていることが分かります。 ドメイン名/accounts/profile/を取得し、404ページを取得します。慌てないでください。あなたのsettings.pyファイルのリガでこのコードだけが必要です。 LOGIN_REDIRECT_URL='/'を保存してページを更新したら、あなたのサイトのホームページにジャンプしたことが分かります。
  • ログアウトしたいなら、このURLに入ります。ドメイン名/accounts/logout/ログアウトすればいいです。
  • 以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。