是否可以让用户在使用特定IP地址时登录?所有用户的IP地址都不同,因此在Apache中编写htaccess规则并不能解决我的问题。我还考虑编写自定义身份验证后端,但由于没有提供 request 变量,我没有看到任何方法可以检查用户的当前IP地址。
拥有此功能并非绝对关键,但它可能会很好。我只需要看看是否有可能在没有严厉破解Django的身份验证框架的情况下做到这一点。
谢谢, 科里
答案 0 :(得分:4)
实际上很简单。
视图示例:
from django.contrib.auth import authenticate, login
def login(request):
user = authenticate(ip=request.META['REMOTE_ADDR'])
if user is not None:
login(request, user)
# Redirect to a success page.
else:
# Return an 'invalid login' error message.
auth后端示例:
class IPAuthBackend:
def authenticate(self, ip=None):
try:
return SomeModel.objects.get(ip=ip).user
except SomeModel.DoesNotExist:
pass