我的 django 应用程序中的身份验证用户有问题。我正在使用 Python 3.5 和 Django 1.10。
我编写了简单的绑定配置来检查用户是否是数据库中的真正用户:
username = request.POST['username']
password = request.POST['password']
server = Server(LDAP_AUTH_URL)
c = Connection(server, user=LDAP_AUTH_CONNECTION_USERNAME, password=LDAP_AUTH_CONNECTION_PASSWORD)
c.open()
c.bind()
if c.bind():
user_search_filter = '(uid={})'.format(username)
c.search(search_base=LDAP_AUTH_SEARCH_BASE,
search_filter=user_search_filter,
search_scope=SUBTREE)
username = c.response[0]['dn']
if c.rebind(user=username, password=password):
return HttpResponseRedirect(next)
但现在我不知道如何处理它,在 django 我们当然有这样的东西:
user = authenticate(username=username, password=password)
if user is not None:
if user.is_active:
auth.login(request, user)
return HttpResponseRedirect(next)
else:
return render(request, 'login.html', {'error_message': 'Your account has been disabled'})
else:
return render(request, 'login.html', {'error_message': 'Invalid login'})
但在这种情况下,我们必须在我们的基础中拥有用户帐户,而不是来自 ldap 授权。
因此,当我通过 ldap 登录以使用“@login_required”访问任何其他视图时,我想从 django 获得授权
也许我对 Python >3 的 ldap 和 ldap3 的想法有问题。
任何人都可以帮助我或给我有用的链接?