标签: django-allauth

如何通过django-allauth获取用户的facebook id?

我想在我的模板中显示current_user的图片.当我使用django-allauth时,如何访问用户的facebook id?

python django django-allauth

12
推荐指数
1
解决办法
4980
查看次数

使用django-allauth实现Ajax请求/响应

我正在使用django-allauth作为我的一个项目.我想通过ajax实现登录/注册过程.我想要自定义注册表单.我正在通过他们的signupmixin和注册表单.听起来我可以为每个动作编写自定义视图并将其映射到url配置.我不确定最好的方法是什么.

非常感谢您对此的任何帮助或建议.

django django-forms django-views django-authentication django-allauth

12
推荐指数
1
解决办法
2658
查看次数

将django-allauth与tastypie一起使用的正确方法是什么?

我正在编写一个Django应用程序,它使用django-allauth进行Facebook集成,并使用django-tastypie作为iOS应用程序的后端.iOS应用程序将使用原生Facebook iOS SDK.除了网站之外,我还希望能够从iOS应用程序中注册并验证Facebook和非Facebook用户.

问题是django-allauth似乎没有可以从外部访问的API.插入allauth功能的唯一简洁方法似乎是通过Django模板标签.有没有办法可以公开这个功能与tastypie一起使用?

Django-allauth都是开源的,所以我试图解析代码.我最初的想法是使用本机Facebook SDK对iOS端的用户进行身份验证,然后手动填写SocialAccount,SocialToken的信息,并将SocialAccount添加到SocialApp(这些都是django-allauth模型).然而,这似乎是一个非常糟糕的解决方案.我喜欢通过Facebook ID或类似方式干净地创建所有模型的方法.

更新:GitHub上 有一些关于这个问题的讨论.基本上,还没有内置功能.我打算制定一个只处理Facebook的自定义解决方案(因为这就是我在我的应用程序中使用的所有内容).如果有效,我会发布我之后在这里做的.

python django tastypie facebook-ios-sdk django-allauth

12
推荐指数
1
解决办法
1173
查看次数

Django-allauth:发送关于注册的欢迎电子邮件(未经验证)

如何向注册django应用程序的用户发送欢迎电子邮件(使用django-allauth).如果我设置ACCOUNT_EMAIL_VERIFICATION = ("mandatory"),它工作正常,用户会收到验证邮件.但由于我不需要任何电子邮件验证,因此用户只需注册并收到欢迎电子邮件.

settings.py-

ACCOUNT_AUTHENTICATION_METHOD = ("email")
ACCOUNT_EMAIL_VERIFICATION = ("none")
ACCOUNT_SIGNUP_PASSWORD_VERIFICATION  = False
ACCOUNT_UNIQUE_EMAIL = True
ACCOUNT_USERNAME_REQUIRED = False
EMAIL_CONFIRMATION_SIGNUP = True
ACCOUNT_EMAIL_REQUIRED =True
LOGIN_REDIRECT_URL = '/'
LOGOUT_URL = '/'
ACCOUNT_LOGOUT_ON_GET =False
ACCOUNT_LOGOUT_REDIRECT_URL = '/'
SOCIALACCOUNT_QUERY_EMAIL = (ACCOUNT_EMAIL_REQUIRED)
SOCIALACCOUNT_AUTO_SIGNUP = True
SOCIALACCOUNT_AVATAR_SUPPORT = ( 'avatar' in INSTALLED_APPS)
EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = '##'
EMAIL_HOST_PASSWORD = '##'
EMAIL_PORT = 587
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
Run Code Online (Sandbox Code Playgroud)

是否有任何我错过的设置发送欢迎注册邮件?或者我必须通过我的观点传递它?似乎无法找到解决方法.任何帮助都会很棒.谢谢.

django django-allauth

11
推荐指数
2
解决办法
9361
查看次数

django-allauth HTML电子邮件不发送

我在我的模板文件夹中添加以下子文件夹和文件以覆盖电子邮件消息(以下文档https://github.com/pennersr/django-allauth#sending-e-mail)a:

templates/
   account/
     email/
       email_confirmation_message.html
       email_confirmation_message.txt
       email_confirmation_subject.txt
Run Code Online (Sandbox Code Playgroud)

覆盖适用于*.txt版本的电子邮件(意思是,我认为,我有一个正确的文件夹结构)但我的问题是HTML版本不是由django_allauth发送的.

django django-allauth

11
推荐指数
1
解决办法
2251
查看次数

使用 allauth 绕过注册表单

有谁知道在 django allauth 中使用社交帐户时如何绕过注册页面?

我已经与 Google 合作进行身份验证,但是当用户接受 Google 的请求时,它会重定向到一个页面,要求他们输入电子邮件地址,然后才能登录。

但它肯定会从 Google 登录中检索此信息,并且应该能够简单地让用户登录以便他们可以使用该网站吗?

我该怎么做呢?

谢谢。

django django-allauth

11
推荐指数
3
解决办法
2482
查看次数

django-allauth使用iOS设备上的Facebook令牌登录

我正在使用Facebook iOS SDK将Facebook Access Token发布到我的Django服务器URI.相应的views.py函数如下所示,当我从iOS执行POST时,我得到200响应代码.但是,我有第二个@login_required修饰的URI,我立即从iOS设备调用后认为我没有登录并将我重定向到我的主页面.我究竟做错了什么?从iOS成功发布POST后,如何"保持"登录状态?

# For POSTing the facebook token
from django.views.decorators.csrf import csrf_exempt
from allauth.socialaccount import providers
from allauth.socialaccount.models import SocialLogin, SocialToken, SocialApp
from allauth.socialaccount.providers.facebook.views import fb_complete_login
from allauth.socialaccount.helpers import complete_social_login

# Log in from Facebook
@csrf_exempt
def mobile_facebook_login(request):
    response = HttpResponse() ## Create an HTTP Response Object
    if request.method == "POST": # The method better be a POST
        access_token = request.POST.get('access_token') # Get token   
        try:
            app = SocialApp.objects.get(provider="facebook")
            token = SocialToken(app=app, token=access_token)

            # Check token against facebook …
Run Code Online (Sandbox Code Playgroud)

python django facebook objective-c django-allauth

11
推荐指数
1
解决办法
2875
查看次数

django-allauth:如何正确使用email_confirmed信号将用户设置为活动状态

另一篇文章中,我提到我试图使用allauth的email_confirmed信号将确认用户的is_active字段更改为true.但是,以下代码给了我异常"用户匹配查询不存在".

from allauth.account.signals import email_confirmed
from django.dispatch import receiver
from django.contrib.auth.models import User

@receiver(email_confirmed)
def email_confirmed_(request, email_address, **kwargs):

    user = User.objects.get(email=email_address)
    user.is_active = True

    user.save()
Run Code Online (Sandbox Code Playgroud)

我试图重新执行此操作,但仍然遇到类似的异常,"EmailAddress匹配查询不存在."

from allauth.account.signals import email_confirmed
from django.dispatch import receiver
from django.contrib.auth.models import User
from allauth.account.models import EmailAddress

@receiver(email_confirmed)
def email_confirmed_(request, email_address, **kwargs):

    new_email_address = EmailAddress.objects.get(email=email_address)
    user = User.objects.get(new_email_address.user)
    user.is_active = True

    user.save()
Run Code Online (Sandbox Code Playgroud)

Traceback在这里:

Environment:


Request Method: POST
Request URL: http://www.website.com/accounts/confirm-email/5901011619071fce757447ba146fe6312cb27bc0fee34d29665b857b479b49fc/

Django Version: 1.6.1
Python Version: 3.3.2
Installed Applications:
('django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages', …
Run Code Online (Sandbox Code Playgroud)

django django-admin django-authentication django-allauth

11
推荐指数
2
解决办法
4092
查看次数

在Django中覆盖外部应用程序的模板

我想覆盖外部应用程序的模板(allauth,安装在站点包中).不幸的是,我读过没有建议.我在笔记上添加了以下内容settings.py:

PROJECT_ROOT = os.path.normpath(os.path.dirname(os.path.abspath(__file__)))
TEMPLATE_DIRS = (os.path.join(PROJECT_ROOT, 'templates', 'allauth'))
Run Code Online (Sandbox Code Playgroud)

并将所有模板(此内容)复制到my_project_dir/templates/allauth.但是当我重新启动服务器并重新加载页面时,我只从站点包中的原始allauth应用程序获取渲染的模板,而不是我的自定义模板.任何提示?

django django-allauth

10
推荐指数
2
解决办法
6103
查看次数

django 1.9:ProgrammingError:关系"users_user"不存在

我在迁移时遇到了ProgrammingError,我认为这可能与django-allauth与自定义用户的使用有关.这就是我的工作

1 /用psql创建一个新的数据库:

create database dj_example;
Run Code Online (Sandbox Code Playgroud)

2/Installed_apps包含django.contrib.sites:

DJANGO_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
)
THIRD_PARTY_APPS = (
'crispy_forms',  # Form layouts
'allauth',  # registration
'allauth.account',  # registration
#'allauth.socialaccount',  # registration
#'allauth.socialaccount.providers.twitter',
'djcelery', #Celery
)
LOCAL_APPS = (
'tucat.users',  # custom users app
}
Run Code Online (Sandbox Code Playgroud)

3/site_id设置为1

SITE_ID = 1
Run Code Online (Sandbox Code Playgroud)

4 /自定义用户模型过于简单:

# -*- coding: utf-8 -*-
from __future__ import unicode_literals, absolute_import
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
  def __unicode__(self):
    return self.username
Run Code Online (Sandbox Code Playgroud)

5/Makemigrations工作正常

# python manage.py makemigrations
Migrations for …
Run Code Online (Sandbox Code Playgroud)

django django-allauth

10
推荐指数
2
解决办法
1万
查看次数