用户在任意页面点击登录,并且登录成功后,应该跳转到用户点击登录的那个页面, 即是
- 用户在A.html页面点击登录
- 用户到登录页面login.html
- 用户输入信息登录成功
- 自动跳转回到A.html
下面是我在django中的实现的配合自己写的 django登录系统
每个页面的登录链接应该是这样的:
<a href="{% url 'authin:login' %}?next={{ request.path }}">登录</a>
(request.path是当前页面的url,实际上django的render函数的第一个参数就是request,所以都能获取到)这样实际的GET请求为
localhost:8000/authin/login?next=/current/page/
,next包含了发起登录请求页面的urllogin视图函数获取URL查询字符串的next的值(请求登录的页面的URL)
next=request.GET.get('next','/')
返回的login页面中的登录表单中添加一个隐藏字段:
<input type="hidden" name="next" value="{{ next }}">
与登录信息一起提交到服务端登录表单提交后可以获取到next的值(form.data[‘next’]),若登录成功则可以重定向到next包含的URL