|
|
|
|
@ -1,5 +1,5 @@
|
|
|
|
|
import logging
|
|
|
|
|
# Create your views here.
|
|
|
|
|
#gqc Create your views here.
|
|
|
|
|
from urllib.parse import urlparse # 用于解析URL,验证跳转地址合法性
|
|
|
|
|
|
|
|
|
|
from django.conf import settings
|
|
|
|
|
@ -23,7 +23,7 @@ from oauth.forms import RequireEmailForm # 导入补充邮箱的表单
|
|
|
|
|
from .models import OAuthUser # 导入OAuth用户模型
|
|
|
|
|
from .oauthmanager import get_manager_by_type, OAuthAccessTokenException # 导入OAuth管理器和异常
|
|
|
|
|
|
|
|
|
|
# 初始化日志记录器
|
|
|
|
|
#gqc 初始化日志记录器
|
|
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -34,11 +34,11 @@ def get_redirecturl(request):
|
|
|
|
|
:return: 验证后的合法跳转URL,默认返回'/'
|
|
|
|
|
"""
|
|
|
|
|
nexturl = request.GET.get('next_url', None)
|
|
|
|
|
# 过滤非法或默认的跳转地址
|
|
|
|
|
#gqc 过滤非法或默认的跳转地址
|
|
|
|
|
if not nexturl or nexturl == '/login/' or nexturl == '/login':
|
|
|
|
|
nexturl = '/'
|
|
|
|
|
return nexturl
|
|
|
|
|
# 解析URL,验证域名是否为本站
|
|
|
|
|
#gqc 解析URL,验证域名是否为本站
|
|
|
|
|
p = urlparse(nexturl)
|
|
|
|
|
if p.netloc: # 存在域名部分时验证
|
|
|
|
|
site = get_current_site().domain
|
|
|
|
|
|