繁体   English   中英

使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?

[英]Using admin permission, how to authenticate or logged into the user account without a password?

我是 django 应用程序的新手,我想通过管理员权限检查/登录没有密码的用户帐户。

Django 中是否有任何内置功能? 请帮助或指导我如何做到这一点?

PHP 中的 laravel 提供的这种功能

下面是 PHP 的示例代码:

use Illuminate\Http\Request;
use App\User;

public function loginAsUser(User $user){
    auth()->guard('admin')->logout();     
    auth()->guard('web')->loginUsingId($user->id);
    return redirect(route('user.dashboard'));
}

这是对我有用的最简单的逻辑。

[html / template page ]
<a href="{% url 'login_as' user.username %}">Login as User</a>

[urls.py]
path('login_as/<username>', views.login_as_user, name='login_as'),


[views.py]
from django.contrib.auth import login


@staff_member_required()
def login_as_user(request, username):
    try:
        # assuming the user name is passed in via get
        username = username
        user = User.objects.get(username=username)

        # manually set the backend attribute
        user.backend = 'django.contrib.auth.backends.ModelBackend'
        login(request, user)
    except Exception as e:
        messages.warning(request, e)

    #location of landing 
    return redirect('/users/dashboard')


暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM