标签: python-social-auth

重定向到最后一页不在python social auth上工作

我正在使用python social auth来使用社交登录,但在成功登录后我无法重定向到最后一页.

例如,如果我在下一页http://localhost:8000/docprofile/14/并单击登录按钮,而不是将我重定向到最后一页,http://localhost:8000/docprofile/14/它会将我重定向到登录页面.

如果我这样说:

<a href="{% url 'social:begin' 'facebook' %}?next={{ request.path }}"> | Login with Facebook</a>
Run Code Online (Sandbox Code Playgroud)

它重定向到登录页面,网址以奇怪的字符结尾:

http://localhost:8000/login/#_=_
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

<a href="{% url 'social:begin' 'facebook' %}?next={{ request.get_full_path }}"> | Login with Facebook</a>
Run Code Online (Sandbox Code Playgroud)

这次它确实采取了路径,/docprofile/14但仍然没有重定向我,并带我到URL的登录页面http://localhost:8000/login/?next=/docprofile/14/#_=_

python django redirect python-social-auth

6
推荐指数
1
解决办法
799
查看次数

与python-social-auth的django makemigrations导致权限被拒绝错误

将python social auth添加到我安装的应用程序后,即

INSTALLED_APPS = (
    ...
    'social.apps.django_app.default',
    ...
)
Run Code Online (Sandbox Code Playgroud)

然后尝试一个

python manage.py makemigrations
Run Code Online (Sandbox Code Playgroud)

我得到一个不足为奇的权限错误

Migrations for 'default':
  0002_auto_20150217_2053.py:
    - Alter field user on usersocialauth
Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/usr/lib/python2.7/site-packages/django/core/management  /__init__.py", line 385, in execute_from_command_line
utility.execute()
File "/usr/lib/python2.7/site-packages/django/core/management/__init__.py", line 377, in execute
  self.fetch_command(subcommand).run_from_argv(self.argv)
File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 288, in run_from_argv
  self.execute(*args, **options.__dict__)
File "/usr/lib/python2.7/site-packages/django/core/management/base.py", line 338, in execute
  output = self.handle(*args, **options)
File "/usr/lib/python2.7/site-packages/django/core/management/commands/makemigrations.py", line 124, in handle
  self.write_migration_files(changes)
File "/usr/lib/python2.7/site-packages/django/core/management/commands /makemigrations.py", …
Run Code Online (Sandbox Code Playgroud)

django python-social-auth django-migrations

6
推荐指数
1
解决办法
1424
查看次数

如何解决验证过程取消错误?

现在我尝试设置python-social-app

在facebook登录后,用户名/密码重定向到错误页面,我不知道为什么会发生这种情况......

在我的设置中我已经'social.backends.facebook.FacebookOAuth2'和我正确设置SOCIAL_AUTH_FACEBOOK_KEY并且秘密所以真的在哪里看错误.

追溯

Environment:
Request Method: GET
Request URL: http://website.com:8000/complete/facebook/?redirect_state=IuQDEiyX2bbS8Uhk7MR3hpRFLNZlW2Y5&code=AQDH5kqBibfy9bi21M9tTieujRAqvJVYdAb2UPFvfH6DVXoCWrrtamRA99Ze5-6cC6qHPiNq-a3XbGh2Gg4pbdFfM4OTpCEpWkPID6SZrHfAoEan8Q68cV17LDgsryX_M45QoXd0knpbE0x-QwAPwdoFmKQGHLw7xomCHeN5pCtrWhtoYQIrsFE1UQZZaxt4qtLzAmfmCRjDO7Et_S75fngLiomM0PfevTChLbHJHMYaqy6DBkgGZqZK-bXrqLaNFnBEoZ3M956DwCg4ZtTnvxulR4sXH9ZV3IoxVhL0JxMVsGnT2H_0wdKujIDPKcdPKZc&state=IuQDEiyX2bbS8Uhk7MR3hpRFLNZlW2Y5

Django Version: 1.8.3
Python Version: 2.7.6
Installed Applications:
('django.contrib.admin',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.messages',
 'django.contrib.staticfiles',
 'frontend',
 'social.apps.django_app.default')
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.common.CommonMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.auth.middleware.SessionAuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware',
 'django.middleware.clickjacking.XFrameOptionsMiddleware',
 'django.middleware.security.SecurityMiddleware')


Traceback:
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
  57.         response = view_func(request, *args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/django/views/decorators/csrf.py" in wrapped_view
  58.         return view_func(*args, **kwargs)
File "/Users/simon/Freelancer/env/lib/python2.7/site-packages/social/apps/django_app/utils.py" in wrapper
  51.             return func(request, backend, *args, **kwargs) …
Run Code Online (Sandbox Code Playgroud)

python django python-social-auth

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

如何在Facebook Oauth2中使用django-rest-framework-social-oauth2?

我在这里阅读了文档: django-rest-framework-social-oauth2,但是对我来说一切都还不清楚(这是我第一次使用它)。

最后,它显示了如何进行设置以使用facebook Oauth2的一些配置。并且在文档中有此信息:

您可以通过运行以下命令来测试这些设置:

curl -X POST -d “grant_type=convert_token&client_id=<client_id>&client_secret=<client_secret>&backend=facebook&token=<facebook_token>”  http://localhost:8000/auth/convert-token
Run Code Online (Sandbox Code Playgroud)

该请求返回您应在所有带有DRF的HTTP请求上使用的“ access_token”。这里发生的是,我们正在转换访问令牌中的第三方访问令牌(user_access_token)以与您的api及其客户端(“ access_token”)一起使用。您应该在系统/应用程序与api之间的每次通信以及以后的通信中使用此令牌,以对每个请求进行身份验证,并避免每次都使用FB进行身份验证。

这是否意味着借助此端点,我将能够以某种方式“覆盖” sing up在我的应用程序中使用与Facebook上相同的user_access_token创建用户的方法?

如果这是正确的,以我的理解。得到FB.getLoginStatus响应后,我将能够在自己的API端点上调用其登录用户,并使用他的facebook user_acess_token进行调用(这在我的系统上也是如此)。

我想我还需要向用户模型添加社交帐户令牌?

我对吗?

python django oauth-2.0 django-rest-framework python-social-auth

6
推荐指数
1
解决办法
2753
查看次数

姜戈。Python 社交身份验证。在管道末端创建配置文件

我想在身份验证管道的末尾添加一个函数,该函数旨在检查该用户是否有“配置文件”表,如果没有,它将创建一个表。Profiles 模型是一个表,我在其中存储了有关用户的一些额外信息:

class Profiles(models.Model):
    user = models.OneToOneField(User, unique=True, null=True)
    description = models.CharField(max_length=250, blank=True, null=True)
    points = models.SmallIntegerField(default=0)
    posts_number = models.SmallIntegerField(default=0)
Run Code Online (Sandbox Code Playgroud)

每个用户都必须有一个 Profiles 表。所以,我在管道的末尾添加了一个函数:

SOCIAL_AUTH_PIPELINE = (
    'social.pipeline.social_auth.social_details',
    'social.pipeline.social_auth.social_uid',
    'social.pipeline.social_auth.auth_allowed',
    'social.pipeline.social_auth.social_user',
    'social.pipeline.user.get_username',
    'social.pipeline.user.create_user',
    'social.pipeline.social_auth.associate_user',
    'social.pipeline.social_auth.load_extra_data',
    'social.pipeline.user.user_details',
    'app.utils.create_profile'  #Custom pipeline
)

#utils.py 
def create_profile(strategy, details, response, user, *args, **kwargs):
    username = kwargs['details']['username']
    user_object = User.objects.get(username=username)
    if Profiles.ojects.filter(user=user_object).exists():
        pass
    else:
        new_profile = Profiles(user=user_object)
        new_profile.save()
    return kwargs
Run Code Online (Sandbox Code Playgroud)

我收到错误:

 KeyError at /complete/facebook/
 'details'
 ...
 utils.py in create_profile
 username = kwargs['details']['username']
Run Code Online (Sandbox Code Playgroud)

我是 python 社交身份验证的新手,看起来我遗漏了一些明显的东西。任何帮助将不胜感激。

python django python-social-auth

5
推荐指数
1
解决办法
2575
查看次数

Facebook 登录和电子邮件验证

Facebook 是否始终验证其用户的电子邮件地址?我正在使用 Django(使用 python-social-auth)构建一个应用程序,我希望人们能够使用他们的 Facebook 帐户登录。据我了解,电子邮件始终经过验证。即使注册者使用了他/她的电话号码。如果他们稍后输入电子邮件,该电子邮件仍将被验证。

但是,我不确定之前是否是这种情况。我们可以相信 Facebook 已经验证了所有帐户的所有电子邮件吗?

django facebook oauth-2.0 facebook-login python-social-auth

5
推荐指数
1
解决办法
1877
查看次数

检查当前用户是否使用任何django社交身份验证提供程序登录

我想检查用户是通过社交身份验证还是使用django默认身份验证登录.

就像是

如果user.social_auth = true?

django django-socialauth python-social-auth

5
推荐指数
1
解决办法
3339
查看次数

Python-Social-Auth 有时会显示“AuthStateForbidden”

有时,当我尝试登录或注册 Facebook 或 Google 时,它​​会返回一个错误AuthStateForbidden屏幕

错误画面 但只要刷新页面或过一段时间再试,它就可以正常运行。

我试过添加Google+ APIGoogle 开发人员,但 Facebook 也有同样的问题。

任何的想法?

提前致谢!

python django python-social-auth

5
推荐指数
1
解决办法
727
查看次数

Python Social Auth 重定向到错误的 URL

我使用Python -社会-身份验证为我的Django的网站,让我们说:example.io。它正在工作。但是,在重新部署并尝试通过 Twitter 登录后,它重定向到错误的 URL,example只是,没有.io

我还尝试使用另一个 url, staging.example.io, 它仍然重定向到example, 没有stagingio

我尝试在本地部署它,所以 URL 是localhost:12345,并且它重定向到正确的 URL(到 localhost:12345 或 127.0.0.1:12345),并成功登录。

有人知道吗?

更新:我尝试使用另一个 url,例如 abc.def.com,但仍然重定向到example(没有 .io)。LinkedIn 社交身份验证也发生了这种情况。

python django redirect python-social-auth

5
推荐指数
0
解决办法
286
查看次数

如何允许用户使用 django-rest-framework-social-oauth2 注册电子邮件?

如果他们愿意,我希望用户能够在不使用第 3 方的情况下进行注册。很少有网站需要用户名才能登录,所以我想使用电子邮件而不是用户名。

django-rest-framework-social-oauth2结合了python-social-authdjango-oauth-toolkit

python-social-auth 包含一个EmailAuth后端,应该让用户使用电子邮件和密码进行注册。但是,我不明白使用它而不是特定于 Django 的身份验证后端的含义,并且文档将其标记为“遗留”,这听起来有点可怕。

事实上,我不知道如何创建帐户(包括来自 3rd 方的帐户)如何与 Django 用户模型相关,因为它需要用户名。

使用 EmailAuth 会丢失什么?这是去这里的理想方式,还是有其他选择?

出于我不明白的原因,Django 仍然不支持电子邮件而不是没有自定义用户模型的用户名,因此无论我需要为基于电子邮件的帐户使用定制的或开源的东西。

编辑:蟒蛇-社会- AUTH只是填充与用户名字段username = email.split('@', 1)[0]如图所示这里。我想我可能需要创建一个自定义的 Django 用户模型并将 python-social-auth 指向它,但我不确定如何,我不确定这是否仍应通过 EmailAuth 或独立于 python-social 使用- 授权。

django rest registration django-rest-framework python-social-auth

5
推荐指数
0
解决办法
481
查看次数