3

BitBucket、Github、LinkedIn を介してソーシャル メディア認証を実装しようとしていますが、/login/error/ でエラー WrongBackend が発生します。 Github の場合は redirect_uri_mismatch']}。

データベース ストアとして MongoEngine を使用しています

Bitbucket のトレースバックは次のとおりです (LinkedIn と同様)。

Environment:


Request Method: GET
Request URL: http://localhost:8000/login/error/

Django Version: 1.4.4
Python Version: 2.7.3
Installed Applications:
('django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'blogapp',
 'social_auth')
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "/usr/local/lib/python2.7/dist-packages/social_auth/decorators.py" in wrapper
  29.                 raise WrongBackend(backend)

Exception Type: WrongBackend at /login/error/
Exception Value: Incorrect authentication service "error"

「/usr/local/lib/python2.7/dist-packages/social_auth/decorators.py」という例外の場所にトレースを追加し、次のトレースを取得しました。誰が私が間違っているのか教えてもらえますか? とてもイライラしました。

私のアプリケーションには次の設定があります

すべてのサービスで、アプリケーション URL を localhost:8000 として登録し、コールバック URL を localhost:8000/callback/ として登録しました。

[編集]

回答の1つに記載されているようにsqlite3テーブルを作成し、いくつかのテーブルを作成しました。しかし、問題は解決しません。

4

2 に答える 2

0

あなたの問題はコールバック URL だと思います。これらのサービスに localhost:8000/callback であることを伝えていますが、django-social-auth は /complete/ (例: /complete/github) の形式でコールバックを提供します。これらすべてのバックエンドに対応する 1 つの URL ではありません。

于 2013-03-26T03:12:09.113 に答える
0

編集: sqlite3 db の使用に関する以前の応答は、間違った仮定に基づいていました。ここでコードを見ると何が起こっているかです

  1. LOGIN_ERROR_URL をコメントアウトしています。この場合、ワークフローによって Linked に移動し、言及したエラーが発生します。
  2. この行のコメントを外して試してみると、login-error コールバックにリダイレクトされることがわかります。

したがって、この行のコメントを外し、Linked In アプリケーションを登録したドメインにこのコードをデプロイし、そこでテストする必要があると思います。(問題の一部は、私のようにLocalhostでテストしていることだと思います)

于 2013-03-25T16:32:55.363 に答える