Django 使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?
我是django应用程序的新手,我想通过管理员权限检查/登录一个没有密码的用户帐户 Django中有内置功能吗?请帮助或指导我如何做到这一点 这种特性是由laravel在PHP中提供的 以下是PHP的示例代码:Django 使用管理员权限,如何在没有密码的情况下验证或登录用户帐户?,django,python-3.x,authentication,Django,Python 3.x,Authentication,我是django应用程序的新手,我想通过管理员权限检查/登录一个没有密码的用户帐户 Django中有内置功能吗?请帮助或指导我如何做到这一点 这种特性是由laravel在PHP中提供的 以下是PHP的示例代码: 使用照亮\Http\Request; 使用App\User; 公共函数loginAsUser(用户$User){ auth()->guard('admin')->logout(); auth()->guard('web')->loginUsingId($user->id); 返回重定向(
使用照亮\Http\Request;
使用App\User;
公共函数loginAsUser(用户$User){
auth()->guard('admin')->logout();
auth()->guard('web')->loginUsingId($user->id);
返回重定向(路由('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')
[html/模板页]
[url.py]
路径('login_as/',views.login_as_user,name='login_as'),
[views.py]
从django.contrib.auth导入登录
@职员/职员/必需人员()
def以用户身份登录(请求、用户名):
尝试:
#假设用户名是通过get传入的
用户名=用户名
user=user.objects.get(用户名=username)
#手动设置后端属性
user.backend='django.contrib.auth.backends.ModelBackend'
登录(请求、用户)
例外情况除外,如e:
消息。警告(请求,e)
#着陆地点
返回重定向(“/users/dashboard”)
您可以创建一个视图,根据电子邮件或用户名查询用户。然后使用该用户对象作为参数调用login
方法。您应该查看世界级。文档没有比这更新的用户友好。@Toankocho是的,但是身份验证方法使用user.password询问用户对象,在我的情况下-没有密码尝试使用管理员权限登录用户帐户,这可能吗?