[英]Using admin permission, how to authenticate or logged into the user account without a password?
I'm new to with django application, I want to check/login a users account without password through admin permission.我是 django 应用程序的新手,我想通过管理员权限检查/登录没有密码的用户帐户。
Is there any built-in feature in Django? Django 中是否有任何内置功能? Please help or guide me on how to do that?请帮助或指导我如何做到这一点?
This kind of feature provided by laravel in PHP PHP 中的 laravel 提供的这种功能
Here is the sample code of PHP:下面是 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'));
}
Here is the simplest logic that works for me.这是对我有用的最简单的逻辑。
[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.