我有一个使用 Django Allauth 的项目。我看到他们最近在 Django Allauth 中发布了 MFA,但我不知道如何实现它,而且目前的文档相当有限。
谁能更详细地解释一下实现 Django Allauth MFA 的步骤是什么?
感谢任何人可以提供的帮助!
我如何覆盖默认clean_email()方法allauth.account.forms.BaseSignupForm.我在Forms.py中尝试了以下内容:
from allauth.account.forms import BaseSignupForm
class Extended_BaseSignupForm(BaseSignupForm):
def clean_email(self):
data = self.cleaned_data['email']
if "@gmail.com" not in data: # any check you need
raise forms.ValidationError("Must be a gmail address")
if app_settings.UNIQUE_EMAIL:
if data and email_address_exists(data):
raise forms.ValidationError \
(_("A user is registered with this e-mail address."))
return data
Run Code Online (Sandbox Code Playgroud)
覆盖的目的是防止用户注册一次性电子邮件ID.
我有一个django项目,其中有多个配置文件模型,每个模型都有一个用户模型的外键.它django-allauth用于注册.
目前,当使用社交帐户注册时,用户注册,创建用户和社会帐户,然后根据他/她之前选择的配置文件类型以及填写该表单后,将用户重定向到要填写的表单.是创建的正确配置文件类型.
如果用户,socialaccount和配置文件类型实例是在同一步骤中创建的,即在用户填写配置文件特定表单之后,我会喜欢它.无论如何我可以在不改变allauth's代码的情况下做到这一点吗?通过修改allauth来做到这一点并不难,但如果可以帮助我,我宁愿不维护第三方应用程序的自定义副本.
使用自定义适配器是因为它无法访问请求.
我一直试图找到如何向已经注册并使用的用户添加新的社交帐户django-allauth.到目前为止,我已经找到了这个问题,而另一个问题与我需要的问题有关,但建议不起作用.
我正在使用自定义用户类,通过电子邮件进行身份验证,一旦我成功创建了第一个社交帐户,它就不会让我添加另一个.我已经尝试将provider_login_url用户进行身份验证的页面,如上面提到的一个答案中所建议的那样,但它似乎注销然后尝试再次注册,但随后,因为电子邮件是相同的,"它与现有用户的电子邮件发生冲突".
我怎样才能获得预期的行为?也就是说,它将django-allauth电子邮件识别为属于现有用户,因此仅创建socialaccount新用户,而不是新用户.
我正在使用django-allauth插件.它允许通过ACCOUNT_EMAIL_VERIFICATION设置变量配置电子邮件验证,但它不区分正常注册和社交注册.我想仅在通过正常注册注册时验证电子邮件,并且在通过社交注册提交时不进行验证.可能吗?我该怎么做?
我正在创建一个自定义提供程序以从另一个内部项目中获取oauth2令牌,该过程几乎可以完成,但是403 forbidden当浏览器使用此URL返回到我的项目时,我收到了错误消息:
http://localhost:8001/account/connect/login/callback/?state=Nngd5Gu3JnB4&code=Rqqg91oEwQKDsvSyzZ8Az5fEeHGaEe#_=_
Run Code Online (Sandbox Code Playgroud)
这是我的自定义提供程序中的views.py:
import requests
from allauth.socialaccount.providers.oauth2.views import (OAuth2Adapter, OAuth2LoginView, OAuth2CallbackView)
from .provider import ConnectProvider
class ConnectOAuth2Adapter(OAuth2Adapter):
provider_id = ConnectProvider.id
access_token_url = 'http://localhost:8000/o/token/'
authorize_url = 'http://localhost:8000/o/authorize/'
profile_url = 'http://localhost:8000/api/account/'
def complete_login(self, request, app, token, **kwargs):
_token = {'access_token':token.token}
resp = requests.get(self.profile_url, params={'access_token': token.token, 'alt': 'json'})
extra_data = resp.json()
login = self.get_provider().sociallogin_from_response(request, extra_data)
return login
oauth2_login = OAuth2LoginView.adapter_view(GoConnectOAuth2Adapter)
oauth2_callback = OAuth2CallbackView.adapter_view(GoConnectOAuth2Adapter)
Run Code Online (Sandbox Code Playgroud) 我在django应用程序中使用django-allauth进行社交登录.当用户被提示具有社交登录对话框,例如Facebook登录窗口时,他可以选择拒绝权限请求.
在这种情况下,用户当前被重定向到/ accounts/social/login/canceled /.有什么办法可以将他重定向到自定义网址吗?
使用django-allauth通过社交提供程序进行OAuth登录时,有时会失败并显示错误页面"社交网络登录失败".没有包含更多信息的日志输出.此日志输出有一个功能请求(https://github.com/pennersr/django-allauth/issues/1120),但已打开一年多.同时,如何获取更多信息来调试此错误?
默认情况下,Allauth的消息以文本文件的形式存储在模板目录中,它们类似于:
{% load i18n %}
{% blocktrans %}You cannot remove your primary e-mail address ({{email}}).{% endblocktrans %}
Run Code Online (Sandbox Code Playgroud)
这些使用django的模板标签,但不是“ HTML友好的”。我想对这些样式进行样式设置,例如:
{% load i18n %}
<div class="alert alert-danger alert-dismissible" role="alert">
<button type="button" class="close" data-dismiss="alert" aria-label="Close">
<span aria-hidden="true">×</span>
</button>
{% blocktrans %}You cannot remove your primary e-mail address ({{email}}).{% endblocktrans %}
</div>
Run Code Online (Sandbox Code Playgroud)
但是上面的代码只是将HTML呈现为文本。我不能将HTML放在模板中,而只能在模板中做{{message}},因为我想根据每个消息的偏向(至少是颜色!)来更改其中的一些内容。
我该怎么做?谢谢!
我正在使用allauth版本,0.35.0并且我想覆盖电子邮件模板以为其创建所需的HTML模板。allauth登录和注册等页面没有问题,但是我找不到任何电子邮件模板。
这只是.txtpath中的一个文件/templates/account/email/。但是,如何HTML为allauth诸如更改密码等任务的电子邮件设置消息?
任何帮助将不胜感激。
django-allauth ×10
django ×7
python ×4
css ×1
django-email ×1
django-forms ×1
html ×1
oauth ×1
oauth-2.0 ×1