簡體   English   中英

Django:Twitter登錄被重定向到示例域

[英]Django: Twitter login being redirected to Example Domain

我正在使用django-socialregistration來使用戶能夠在其應用程序上使用其Twitter帳戶登錄。

settings.py

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'rango',
    'django.contrib.sites',
    'socialregistration',
    'socialregistration.contrib.twitter'
)
...
...
TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth', 'django.core.context_processors.debug', 'django.core.context_processors.i18n', 'django.core.context_processors.media', 'django.core.context_processors.static', 'django.contrib.messages.context_processors.messages', 'django.core.context_processors.request',) 

AUTHENTICATION_BACKENDS = (
        'django.contrib.auth.backends.ModelBackend',
        'socialregistration.contrib.twitter.auth.TwitterAuth',
)

TWITTER_CONSUMER_KEY = 'XXXXXXXXXXXXXXXXXX'
TWITTER_CONSUMER_SECRET_KEY = 'XXXXXXXXXXXXXXXXXXXX'

SITE_ID = 1

SESSION_SERIALIZER='django.contrib.sessions.serializers.PickleSerializer'

urls.py

from django.conf.urls import patterns, include, url
from django.contrib import admin

urlpatterns = patterns('',
    # Examples:
    # url(r'^$', 'GetEvangelized.views.home', name='home'),
    # url(r'^blog/', include('blog.urls')),

    url(r'^admin/', include(admin.site.urls)),
    url(r'^rango/', include('rango.urls')),
    url(r'^social/', include('socialregistration.urls',
                namespace = 'socialregistration')))

模板

<body>
        <h1>MicroCelebrity Form</h1><br>
        {% load twitter %}
        {% twitter_button %}    
        <br>
        <form id="evangelized_form" method="post" action="/rango/fillform/">

            {% csrf_token %}
            {% for hidden in form.hidden_fields %}
                {{ hidden }}
            {% endfor %}

            {% for field in form.visible_fields %}
                {{ field.errors }}
                <b>{{ field.help_text }}</b><br>
                {{ field }}<br><br>
            {% endfor %}

            <input type="submit" name="submit" value="Submit" />
        </form>
    </body>

但是,單擊Twitter的注冊按鈕后,我將重定向到此:

在此處輸入圖片說明

該網頁的網址如下:

http://example.com/social/twitter/callback/?oauth_token=_WtPXwAAAAAAgTIEAAABTim7zYE&oauth_verifier=TheZd4yPsHNCYEi6mPwIvkugirkz20yH

我的Twitter應用程序的設置如下:

Callback URL    http://127.0.0.1:8000/auth/twitter/callback
Sign in with Twitter    Yes
App-only authentication https://api.twitter.com/oauth2/token
Request token URL   https://api.twitter.com/oauth/request_token
Authorize URL   https://api.twitter.com/oauth/authorize
Access token URL    https://api.twitter.com/oauth/access_token
Website  http://www.cloudclovis.com
Callback url   http://127.0.0.1:8000/auth/twitter/callback

“示例域”網頁表示什么? 當我單擊該頁面上的“更多信息”鏈接時,我被重定向到http://www.iana.org/domains/reserved

這意味着什么? 以及如何允許我的用戶在我的應用程序中使用其Twitter帳戶登錄?

重定向到那里是因為默認sites框架example.com作為默認站點。

如果您處於開發模式,則需要將其更改為127.0.0.1:8000

要更改它,您可以使用默認的管理界面,也可以簡單地使用django shell:

from django.contrib.sites.models import Site

site = Site.objects.get(pk=1)
site.domain = '127.0.0.1:8000'
site.save()

它在文檔中說:

同樣不是說Twitter不會接受http:// localhost:8000作為回調URL的有效域,因此在開發站點時必須使用http://127.0.0.1:8000

這是文檔頁面

編輯:好的,我現在看到您已經做到了。 您能否提供有關該錯誤的更多詳細信息?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM