mirror of
https://github.com/jumpserver/jumpserver.git
synced 2025-07-04 18:46:39 +00:00
fix: 修复企业微信、钉钉、飞书登录跳转问题
This commit is contained in:
parent
07779c5a7a
commit
0fc5a33983
@ -205,12 +205,13 @@ class DingTalkQRLoginView(DingTalkQRMixin, METAMixin, View):
|
|||||||
permission_classes = (AllowAny,)
|
permission_classes = (AllowAny,)
|
||||||
|
|
||||||
def get(self, request: HttpRequest):
|
def get(self, request: HttpRequest):
|
||||||
redirect_url = request.GET.get('redirect_url')
|
redirect_url = request.GET.get('redirect_url') or reverse('index')
|
||||||
|
next_url = self.get_next_url_from_meta() or reverse('index')
|
||||||
|
|
||||||
redirect_uri = reverse('authentication:dingtalk-qr-login-callback', external=True)
|
redirect_uri = reverse('authentication:dingtalk-qr-login-callback', external=True)
|
||||||
redirect_uri += '?' + urlencode({
|
redirect_uri += '?' + urlencode({
|
||||||
'redirect_url': redirect_url,
|
'redirect_url': redirect_url,
|
||||||
'next': self.get_next_url_from_meta()
|
'next': next_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
url = self.get_qr_url(redirect_uri)
|
url = self.get_qr_url(redirect_uri)
|
||||||
|
@ -170,10 +170,11 @@ class FeiShuQRLoginView(FeiShuQRMixin, View):
|
|||||||
permission_classes = (AllowAny,)
|
permission_classes = (AllowAny,)
|
||||||
|
|
||||||
def get(self, request: HttpRequest):
|
def get(self, request: HttpRequest):
|
||||||
redirect_url = request.GET.get('redirect_url')
|
redirect_url = request.GET.get('redirect_url') or reverse('index')
|
||||||
|
|
||||||
redirect_uri = reverse('authentication:feishu-qr-login-callback', external=True)
|
redirect_uri = reverse('authentication:feishu-qr-login-callback', external=True)
|
||||||
redirect_uri += '?' + urlencode({'redirect_url': redirect_url})
|
redirect_uri += '?' + urlencode({
|
||||||
|
'redirect_url': redirect_url,
|
||||||
|
})
|
||||||
|
|
||||||
url = self.get_qr_url(redirect_uri)
|
url = self.get_qr_url(redirect_uri)
|
||||||
return HttpResponseRedirect(url)
|
return HttpResponseRedirect(url)
|
||||||
|
@ -201,12 +201,12 @@ class WeComQRLoginView(WeComQRMixin, METAMixin, View):
|
|||||||
permission_classes = (AllowAny,)
|
permission_classes = (AllowAny,)
|
||||||
|
|
||||||
def get(self, request: HttpRequest):
|
def get(self, request: HttpRequest):
|
||||||
redirect_url = request.GET.get('redirect_url')
|
redirect_url = request.GET.get('redirect_url') or reverse('index')
|
||||||
|
next_url = self.get_next_url_from_meta() or reverse('index')
|
||||||
redirect_uri = reverse('authentication:wecom-qr-login-callback', external=True)
|
redirect_uri = reverse('authentication:wecom-qr-login-callback', external=True)
|
||||||
redirect_uri += '?' + urlencode({
|
redirect_uri += '?' + urlencode({
|
||||||
'redirect_url': redirect_url,
|
'redirect_url': redirect_url,
|
||||||
'next': self.get_next_url_from_meta()
|
'next': next_url,
|
||||||
})
|
})
|
||||||
|
|
||||||
url = self.get_qr_url(redirect_uri)
|
url = self.get_qr_url(redirect_uri)
|
||||||
|
@ -46,11 +46,13 @@ def get_user_or_pre_auth_user(request):
|
|||||||
|
|
||||||
|
|
||||||
def redirect_user_first_login_or_index(request, redirect_field_name):
|
def redirect_user_first_login_or_index(request, redirect_field_name):
|
||||||
url_in_post = request.POST.get(redirect_field_name)
|
url = request.POST.get(redirect_field_name)
|
||||||
if url_in_post:
|
if not url:
|
||||||
return url_in_post
|
url = request.GET.get(redirect_field_name)
|
||||||
url_in_get = request.GET.get(redirect_field_name, reverse('index'))
|
# 防止 next 地址为 None
|
||||||
return url_in_get
|
if not url or url.lower() in ['none']:
|
||||||
|
url = reverse('index')
|
||||||
|
return url
|
||||||
|
|
||||||
|
|
||||||
def generate_otp_uri(username, otp_secret_key=None, issuer="JumpServer"):
|
def generate_otp_uri(username, otp_secret_key=None, issuer="JumpServer"):
|
||||||
|
Loading…
Reference in New Issue
Block a user