oauth2 supports. (#4551)

This commit is contained in:
Garfield Dai
2024-05-21 17:52:41 +08:00
committed by GitHub
parent f32bba6531
commit c873035084
4 changed files with 38 additions and 3 deletions

View File

@@ -6,7 +6,7 @@ import React, { useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import Toast from '@/app/components/base/toast'
import Button from '@/app/components/base/button'
import { fetchSystemFeatures, fetchWebOIDCSSOUrl, fetchWebSAMLSSOUrl } from '@/service/share'
import { fetchSystemFeatures, fetchWebOAuth2SSOUrl, fetchWebOIDCSSOUrl, fetchWebSAMLSSOUrl } from '@/service/share'
import LogoSite from '@/app/components/base/logo/logo-site'
import { setAccessToken } from '@/app/components/share/utils'
@@ -90,6 +90,13 @@ const WebSSOForm: FC = () => {
setIsLoading(false)
})
}
else if (protocal === 'oauth2') {
fetchWebOAuth2SSOUrl(appCode, redirectUrl).then((res) => {
router.push(res.url)
}).finally(() => {
setIsLoading(false)
})
}
else {
Toast.notify({
type: 'error',

View File

@@ -5,7 +5,7 @@ import type { FC } from 'react'
import { useEffect, useState } from 'react'
import { useTranslation } from 'react-i18next'
import Toast from '@/app/components/base/toast'
import { getUserOIDCSSOUrl, getUserSAMLSSOUrl } from '@/service/sso'
import { getUserOAuth2SSOUrl, getUserOIDCSSOUrl, getUserSAMLSSOUrl } from '@/service/sso'
import Button from '@/app/components/base/button'
type UserSSOFormProps = {
@@ -47,7 +47,7 @@ const UserSSOForm: FC<UserSSOFormProps> = ({
setIsLoading(false)
})
}
else {
else if (protocol === 'oidc') {
getUserOIDCSSOUrl().then((res) => {
document.cookie = `user-oidc-state=${res.state}`
router.push(res.url)
@@ -55,6 +55,21 @@ const UserSSOForm: FC<UserSSOFormProps> = ({
setIsLoading(false)
})
}
else if (protocol === 'oauth2') {
getUserOAuth2SSOUrl().then((res) => {
document.cookie = `user-oauth2-state=${res.state}`
router.push(res.url)
}).finally(() => {
setIsLoading(false)
})
}
else {
Toast.notify({
type: 'error',
message: 'invalid SSO protocol',
})
setIsLoading(false)
}
}
return (