标签: django-allauth

Facebook oauth身份验证重定向到localhost而不是我的域

通过OAuth进行身份验证时,Facebook会重定向到localhost而不是我的域.我正在使用django-allauth进行facebook身份验证.GitHub的某个人指出错误可能在Nginx配置中.我正在粘贴下面的nginx配置:

server { # simple reverse-proxy
    listen       80;
    server_name  subdomain.domain.com;
    access_log   logs/site.access.log;

    # serve static files
    location ~ ^/static/  {
        root    /home/user_name/site_assets/;
        expires 30d;
    }

    # serve media files
    location ~ ^/media/(images|javascript|js|css|flash|img)/  {
        root    /home/user_name/site_assets/;
        expires 30d;
    }

    # pass requests for dynamic content to rails/turbogears/zope, et al
    location / {
        proxy_pass      http://localhost:8000;    
    }
  }
Run Code Online (Sandbox Code Playgroud)

有人可以澄清我在这里缺少的东西吗?

nginx facebook-oauth django-allauth

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

来自导入应用程序的模型的Django夹具(如django-allauth)

我知道可以像initial_data.json我自己的模型一样创建灯具文件.我想为导入的django-allauth应用程序创建和使用的表创建类似的文件.

我试过了:

[
    {
        "model":"allauth.socialaccount.models.SocialApp",
        "pk":1,
        "fields":{
            "id":"1",
            "provider":"facebook",
            "name":"facebook",
            "client_id":"0011223344556677",
            "key":"",
            "secret":"012345678901234567890123456"
        }
    }
]
Run Code Online (Sandbox Code Playgroud)

然而,最终会出现错误:

python manage.py syncdb
Creating tables ...
Installing custom SQL ...
Installing indexes ...
DeserializationError: Problem installing fixture 'initial_data.json': 
  Invalid model identifier: 'allauth.socialaccount.models.SocialApp'
Run Code Online (Sandbox Code Playgroud)

django json django-fixtures django-allauth

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

如何区分django中第一次注册和常规登录用户

我正在使用django allauth来实现我的所有signin, signup and logout功能并且工作正常.

现在我有一个功能,

1.当用户第一次注册并登录时,我需要将他重定向到成功页面/验证页面(/success/)

2.当已注册的用户登录时,应将其重定向到 /dashboard/

截至现在我重定向用户(首次注册和已注册),以/dashboard/通过一个名为设置LOGIN_REDIRECT_URLsettings.py

LOGIN_REDIRECT_URL = /dashboard/
Run Code Online (Sandbox Code Playgroud)

另外我观察到有一个名为last_login的字段/属性用于用户对象,我们可以用它来查找用户的最后一次登录,是否有用?

model.py

from django.contrib.auth.models import User

class Profile(models.Model):
    business_name = models.CharField(max_length = 45, null = False, blank = False)
    user = models.ForeignKey(User, unique = True)
    work_field = models.CharField(max_length = 45, null = False, blank = False)
    image = models.ImageField(upload_to = '/images/', null = True, blank = True, max_length = 250)
    image.allow_tags = True
    url = models.URLField(max_length = 255, …
Run Code Online (Sandbox Code Playgroud)

django login django-allauth

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

为什么我的C#AJAX请求使用HTTP并且使用HTTPS失败?

我有一个与django-allauth合作的django应用程序.

我还在生产环境中使用HTTPS部署了它.

来自Web浏览器的AJAX查询指向HTTPS站点,使用POST登录到'/ accounts/login /'按预期返回JSON.

问题在于我的C#移动代码(基于Xamarin).

_client = new HttpClient(handler) {BaseAddress = uri};
_client.DefaultRequestHeaders.Add("X_REQUESTED_WITH", "XMLHttpRequest");
Run Code Online (Sandbox Code Playgroud)

当用作BaseAddress的'uri'是http并指向我的开发服务器时,一切正常,我在响应中得到了JSON.

但是,当uri指向我的https站点(坐在nginx和gunicorn后面)时,我得到了一个HTML响应.

不知道为什么会这样.有人有任何想法吗?

c# django nginx dotnet-httpclient django-allauth

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

如何在django-allauth中禁用密码检查

我在django-allauth包中禁用密码检查(password1 with password2)时出现问题.因为现在,注册表单永远不会在表单中获得两个密码.

python django python-2.7 django-allauth

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

使用Django中的自定义字段扩展django.contrib.auth.models.User模型

我正在使用Django 1.8.2和python 2.7.3,rest框架和allauth.我正在尝试扩展django.contrib.auth.models.User以添加自定义字段,但返回的json为空并且创建了用户:

在models.py中

from django.contrib.auth.models import User
from django.db import models

class MyUser(models.Model):
    user = models.OneToOneField(User)
    black_coffee = models.IntegerField(default=0)
    coffee_with_milk = models.IntegerField(default=0)
    coffee_cut = models.IntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

在serializers.py中

from rest_framework import serializers
from cafeterias.models import MyUser

class UserSerializer(serializers.HyperlinkedModelSerializer):
    # snippets = serializers.HyperlinkedRelatedField(many=True, view_name='snippet-detail', read_only=True)

    class Meta:
        model = MyUser
        fields = ('username', 'black_coffee', 'coffee_with_milk', 'coffee_cut')
Run Code Online (Sandbox Code Playgroud)

在views.py中

from cafeterias.models import MyUser
from rest_framework import permissions
from rest_framework import viewsets

class UserViewSet(viewsets.ReadOnlyModelViewSet):
    queryset = MyUser.objects.all()
    serializer_class = UserSerializer
    permission_classes = (permissions.AllowAny,
                          IsOwnerOrReadOnly,)
Run Code Online (Sandbox Code Playgroud)

这是json的结果: …

python django json django-rest-framework django-allauth

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

如何在django中获取最后一次登录ip并保存到GenericIPAddressField?

我正在扩展用户配置文件并添加了一个last_ip字段,如下所示.每当用户登录其当前IP时,如何更新此字段?如果重要,我正在使用allauth.

class UserProfile(models.Model):  
    user = models.OneToOneField(User)
    last_ip = models.GenericIPAddressField(protocol='IPv4', verbose_name="Last Login IP")
    location = models.CharField(max_length=50, blank=True)
Run Code Online (Sandbox Code Playgroud)

django django-allauth

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

django-rest-auth身份验证无效

我想要一个简单的api身份验证路由django-rest-framework和'django-rest-auth`.注册部分工作正常,由默认的django管理控制台确认,我也可以看到用户.不幸的是,api身份验证继续让我错误

{
    "non_field_errors": [
        "Unable to log in with provided credentials."
    ]
}
Run Code Online (Sandbox Code Playgroud)

目前我对我的配置allauth如下

# all-auth configuration
ACCOUNT_EMAIL_REQUIRED=True
ACCOUNT_AUTHENTICATION_METHOD="email"
ACCOUNT_USERNAME_REQUIRED=False
ACCOUNT_EMAIL_VERIFICATION="none"
ACCOUNT_SIGNUP_PASSWORD_ENTER_TWICE=False

# CORS Configuration
CORS_ORIGIN_ALLOW_ALL=True
Run Code Online (Sandbox Code Playgroud)

我不确定我错过了哪一部分.请指导我正确的方向.没有错误,响应代码为400.凭证从django管理面板验证正确.提前致谢

更新

问题在于电子邮件.我对配置进行了评论,并尝试使用用户名和密码生成令牌.这没有任何错误.

django django-rest-framework django-allauth django-rest-auth

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

如何禁用全身份验证步骤?(发送验证电子邮件)

我正在使用所有身份验证(所有身份验证休息)进行基本授权/身份验证。默认情况下,当用户注册时,Django all-auth尝试发送验证电子邮件。

如何禁用它以防止其发送验证电子邮件?

django django-allauth django-rest-auth

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

Django REST-Auth密码重置

我对可用的django中间件感到完全困惑:

我只是想让密码重置(以及以后的密码更改)功能运行,在后端使用djangowith rest_auth并在前端使用Vue。

步骤1:通过邮件请求重置链接

观看次数

到目前为止,我已经做了CustomPasswordResetView

# project/accounts/views.py
from rest_auth.views import PasswordResetView

class CustomPasswordResetView(PasswordResetView):
pass
Run Code Online (Sandbox Code Playgroud)

序列化器

和一个CustomPasswordResetSerializer

# project/accounts/serializers.py
from rest_auth.serializers import PasswordResetSerializer

class CustomPasswordResetSerializer(PasswordResetSerializer):
    email = serializers.EmailField()
    password_reset_form_class = ResetPasswordForm

    def validate_email(self, value):
        # Create PasswordResetForm with the serializer
        self.reset_form = self.password_reset_form_class(data=self.initial_data)
        if not self.reset_form.is_valid():
            raise serializers.ValidationError(self.reset_form.errors)

        ###### FILTER YOUR USER MODEL ######
        if not get_user_model().objects.filter(email=value).exists():
            raise serializers.ValidationError(_('Invalid e-mail address'))

        return value

    def save(self):
        request = self.context.get('request')
        # Set some values to …
Run Code Online (Sandbox Code Playgroud)

python django django-rest-framework django-allauth django-rest-auth

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