首次登录时创建教程
Posted
技术标签:
【中文标题】首次登录时创建教程【英文标题】:Creating Tutorial upon first login 【发布时间】:2017-03-18 19:56:52 【问题描述】:我目前正在使用 python social auth 将用户登录到我的 Django 应用程序,并在创建第一个用户时显示教程。到目前为止我已经尝试过了,但是请求在 pre_save 信号中不起作用。还有另一种方法可以做到这一点吗?
@receiver(pre_save, sender=User)
def show_tutorial(sender, instance=None, **kwargs):
# For first time creation of user display tutorial
if instance._state.adding:
print ('USER CREATED')
request.session['first_login'] = True
编辑:我在视图中尝试了以下代码,但登录后,打印语句从未登录终端。
def after_user_created(request, user, **kwargs):
user, created = User.objects.get_or_create(user=user)
if created:
request.session['first_login'] = True
print('FIRST LOGIN')
【问题讨论】:
【参考方案1】:你做不到。即使你能做到,你也不应该这样做。让我们在“视图”上尽可能地对“请求”进行操作。像这样。
def create_view(request):
user, created = User.objects.get_or_create(id=xxx)
if created:
request.session['first_login'] = True
更新
添加一个假设使用“social-app-django”的解决方案。
①设置settings.SOCIAL_AUTH_NEW_USER_REDIRECT_URL
NEW_USER_REDIRECT_URL=/new/user/view
http://python-social-auth.readthedocs.io/en/latest/configuration/settings.html?highlight=NEW_USER_REDIRECT_URL#urls-options
② 用新的用户视图更新会话。
def new_user_view(request):
request.session['first_login'] = True
【讨论】:
检查上面的编辑。我试过了,但由于某种原因,请求没有通过,因为打印语句从未出现在终端中。 @Viji123 这是您正在使用的库吗? github.com/python-social-auth/social-core @Viji123 更新我的答案。请重试。以上是关于首次登录时创建教程的主要内容,如果未能解决你的问题,请参考以下文章
新用户首次登录时强制进行 2 因素身份验证 .NET Core
在 ASP.NET Core 中首次登录时强制重定向到另一个页面
keycloak-connect nodejs / meteor - 仅在首次登录时拒绝访问且仅在 prod