我已成功设法将django-socialauth帐户(在本例中为instagram帐户)与现有用户帐户相关联.我还设置了我的管道以收集其他用户详细信息:
def update_social_auth(backend, details, response, social_user, uid, user,
*args, **kwargs):
if getattr(backend, 'name', None) in ('instagram', 'tumblr'):
social_user.extra_data['username'] = details.get('username')
social_user.save()
Run Code Online (Sandbox Code Playgroud)
当帐户第一次关联时,这非常有用.但是,如果该帐户已经关联,则该username字段将不会出现在该字段中extra_data.
如何extra_data在关联完成后更新用户?有没有办法django-socialauth在不断开连接和重新连接或使用帐户(例如Instagram的)API的情况下执行此操作?
如果它有帮助,那么这是我目前的管道:
SOCIAL_AUTH_PIPELINE = (
'social_auth.backends.pipeline.social.social_auth_user',
'social_auth.backends.pipeline.social.associate_user',
'social_auth.backends.pipeline.social.load_extra_data',
'social_auth.backends.pipeline.user.update_user_details',
'apps.utils.social.utils.update_social_auth'
)
Run Code Online (Sandbox Code Playgroud) 我正在尝试与django-allauth合作.我按照github页面上的说明操作并完成以下操作:
在urls.py中添加了allauth网址
urlpatterns += patterns ('',
url('^accounts/', include('allauth.urls')),
url('^accounts/profile/$', ProfileView.as_view(), name='ProfileView'),
url('^login/$', login, name='account_login'),
url('^logout/$', logout, name='account_logout'),
url('^login/cancelled/$', login_cancelled, name='socialaccount_login_cancelled'),
url('^login/error/$', login_error, name='socialaccount_login_error'),
)
Run Code Online (Sandbox Code Playgroud)更新了TEMPLATE_CONTEXT_DIRS,TEMPLATE_CONTEXT_PROCESSORS,AUTHENTICATION_BACKENDS和INSTALLED_APPS.还添加了ACCOUNT_AUTHENTICATION_METHOD = "username_email"
在社交应用表中添加了Twitter的密钥和密钥.
将django-allauth模板复制到我的应用程序目录并进行修改.我可以看到所有的模板,做工精细喜欢/accounts/signup/和/accounts/social/connections/.
现在,当我点击Twitter链接时,从连接或注册/accounts/twitter/login/我最终得到以下错误:
社交网络登录失败
尝试通过您的社交网络帐户登录时出错.
我错过了什么吗?可能是一些愚蠢的错误(Twitter登录网址?没有线索!).我还试图找到一些基于最新代码库的教程但无法找到.github上的django-allauth示例没有任何帮助.请帮忙.另外,请随时根据最新的代码库向我提供任何链接或教程.
提前致谢.
django twitter django-socialauth twitter-oauth django-allauth
我是Python和Django的新手,我正在尝试使用社交认证(https://github.com/omab/django-social-auth).我想使用Github连接,但是没有取得多大成功,所提供的示例对于有人开始有点压倒性.是否有最新的教程可以解释如何使用最新版本的社交auth为初学者设置GitHub身份验证?
我目前正在使用django-social-auth管理oauth2注册google-oauth2以访问Google云端硬盘.我已经添加了对extra_arguments的离线访问.因此,Google会返回刷新令牌,并由django-social-auth存储.问题是django-social-auth从不使用此刷新令牌来更新访问令牌.因此,访问令牌在一小时后过期,我无法使用它来执行脱机请求.我想保持access_token有效24/7有效,这样我就可以让我的数据库与每个用户Google Drive同步.
GOOGLE_OAUTH2_AUTH_EXTRA_ARGUMENTS = {'access_type':'offline'}
GOOGLE_OAUTH_EXTRA_SCOPE = ['https://www.googleapis.com/auth/drive https://www.googleapis.com/auth/userinfo.profile']
SOCIAL_AUTH_USER_MODEL = 'accounts.GoogleDriveUser'
SOCIAL_AUTH_EXTRA_DATA = True
SOCIAL_AUTH_SESSION_EXPIRATION = False
Run Code Online (Sandbox Code Playgroud)
有没有办法强制django-social auth在每次使用refresh_token到期时更新access_token.我很想看到如何解决这个问题的一个例子.
我正在使用Django social_auth api通过社交帐户登录.在这里,我想从社交帐户获取电子邮件地址并将其存储在我的数据库表中.可以从帐户中检索名字和姓氏,但我无法检索电子邮件地址,个人资料图片.请分享您从社交帐户中检索这些详细信息的想法.
我正在使用python-social-auth包和Django来管理oauth和openID登录.
现在的问题是,我可以在django中指定一个重定向url settings.py,但在某些情况下,我希望将用户重定向到他启动身份验证过程的同一页面.
例如:如果我的重定向网址是:/home/并且我当前在/products/product1我验证用户身份的页面中,那么我希望将用户重定向到/products/product1/而不是/home/
请帮我解决这个问题或至少一些详细介绍这个问题的材料.
提前致谢
我在Python 2.7.1下使用django-social-auth和Django 1.3.1.我一直在寻找各地,我无法弄清楚如何使用自定义重定向网址进行Twitter身份验证(或其他提供商).
我已经读过我需要在我的html模板中使用这个模板标签来构建启动过程的链接:
{% url socialauth_begin 'twitter' %}
Run Code Online (Sandbox Code Playgroud)
使用我的settings.py文件中的值可以相对正常LOGIN_REDIRECT_URL(虽然,请看我的问题:Twitter将用户带到/ en /登录/无论我的设置如何)但是,在这种特殊情况下,我需要重定向用户返回时的特殊URL.
我在其他地方读过我需要将带有重定向值的变量'next'传递给模板或作为twitter auth url上的参数传递.这是怎么做到的?我的模板作为HttpResponse加载,因此,虽然我当然可以传递模板值,但我不清楚如何在上面的模板标签中使用它们.
对不起这个基本问题.
我正在使用django-social-auth app进行社交日志记录.现在我想从Facebook获取更多信息,如dob,地址等等.在这个我尝试使用设置FACEBOOK_EXTENDED_PERMISSIONS,但它不适合我.请帮助我了解如何使用来自facebook,google和twitter的社交认证获取更多信息
提前致谢
Paritosh
我正在使用django-social-auth为我的django项目进行谷歌应用认证.我从我的域名的Google api控制台获取了客户端ID和密钥.并在我的应用程序中插入值如下:
**settings.py**
MIDDLEWARE_CLASSES = (
'social_auth.middleware.SocialAuthExceptionMiddleware',
)
LOGIN_URL = '/login/google-oauth2/'
LOGIN_REDIRECT_URL = '/profile'
LOGIN_ERROR_URL = '/login-error/'
AUTHENTICATION_BACKENDS = (
'social_auth.backends.google.GoogleOAuth2Backend',
'django.contrib.auth.backends.ModelBackend',
)
TEMPLATE_CONTEXT_PROCESSORS = (
"django.contrib.auth.context_processors.auth",
"social_auth.context_processors.social_auth_by_type_backends",
)
SOCIAL_AUTH_ENABLED_BACKENDS = ('google',)
SOCIAL_AUTH_DEFAULT_USERNAME = 'new_social_auth_user'
GOOGLE_OAUTH2_CLIENT_ID = '***.apps.googleusercontent.com'
GOOGLE_OAUTH2_CLIENT_SECRET = '****'
GOOGLE_WHITE_LISTED_DOMAINS = ['127.0.0.1:8000']
SOCIAL_AUTH_COMPLETE_URL_NAME = 'socialauth_complete'
SOCIAL_AUTH_ASSOCIATE_URL_NAME = 'socialauth_associate_complete'
SOCIAL_AUTH_RAISE_EXCEPTIONS = False
SOCIAL_AUTH_PROCESS_EXCEPTIONS = 'social_auth.utils.log_exceptions_to_messages'
INSTALLED_APPS = (
'social_auth', )
Run Code Online (Sandbox Code Playgroud)
...
**urls.py**
from django.conf.urls import patterns, include, url
from django.contrib import admin
from django.views.generic import TemplateView
from django.contrib.auth.views import …Run Code Online (Sandbox Code Playgroud) authentication django google-apps django-socialauth oauth-2.0
我按照这篇文章在我的 django 应用程序中获取社交登录。它运行良好,但对于 github 用户,即使我添加,我也无法获取用户电子邮件
SOCIAL_AUTH_GITHUB_SCOPE = ['email']
Run Code Online (Sandbox Code Playgroud)
我应该在文章示例中更改哪些内容才能获取用户电子邮件?
django ×10
python ×4
oauth-2.0 ×2
django-1.4 ×1
github ×1
github-api ×1
google-apps ×1
twitter ×1