首次登录时创建教程

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 中首次登录时强制重定向到另一个页面

首次登录时的 React-Native 欢迎屏幕

keycloak-connect nodejs / meteor - 仅在首次登录时拒绝访问且仅在 prod

AWS Amplify/Cognito - 一种仅在用户首次登录时设置 TOTP MFA 的方法

facebook unity sdk 6.0 在第二次登录时崩溃应用程序