我很难将我的django 1.9.3应用程序从本地开发移植到Heroku上,特别是使用allauth(0.25.2)通过Twitter登录。
看来我遇到的问题与django allauth not working on production相同,但答案对我不起作用。
当我运行开发服务器时,所有内容都适用于设置为http://127.0.0.1:8000/accounts/twitter/login/callback/
的Twitter上的回调网址。
当我将其切换到http://{myappname}.herokuapp.com/accounts/twitter/login/callback/
或http://{myappname}.herokuapp.com/accounts/twitter/login/callback/
并访问Heroku上的应用时,当我尝试通过Twitter登录时,我收到500错误,被重定向到https:// {myappname} .herokuapp.com /账户/叽叽喳喳/登录/?过程=登录
我在settings.py中包含以下设置,我在故障排除过程中试图切换:
ACCOUNT_EMAIL_REQUIRED = True
ACCOUNT_EMAIL_VERIFICATION = "mandatory"
ACCOUNT_EMAIL_SUBJECT_PREFIX = "[{myappname}] "
ACCOUNT_LOGIN_ATTEMPTS_LIMIT = {number}
ACCOUNT_LOGIN_ATTEMPTS_TIMEOUT = {number}
ACCOUNT_LOGIN_ON_EMAIL_CONFIRMATION = False
ACCOUNT_LOGOUT_ON_PASSWORD_CHANGE = True
ACCOUNT_LOGOUT_REDIRECT_URL = "/"
SOCIALACCOUNT_EMAIL_REQUIRED = ACCOUNT_EMAIL_REQUIRED
对于生产(再次尝试切换这些):
SECURE_CONTENT_TYPE_NOSNIFF = True
SECURE_BROWSER_XSS_FILTER = True
SECURE_SSL_REDIRECT = True
SESSION_COOKIE_SECURE = True
CSRF_COOKIE_SECURE = True
CSRF_COOKIE_HTTPONLY = True
X_FRAME_OPTIONS = 'DENY'
我也尝试刷新身份验证密钥。对我做错了什么想法?
答案 0 :(得分:0)
根据e4c5的建议,我在生产环境中启用了调试功能。这很快导致了这个问题:Django: SocialApp matching query does not exist以及我的SITE_ID配置问题。
答案 1 :(得分:0)
在这里晚了聚会,但是您可以尝试在Heroku上进行迁移。
heroku run python manage.py migrate