Fix double authentication (#1772)
This commit is contained in:
parent
3d636f4789
commit
5892bca40b
2 changed files with 12 additions and 1 deletions
|
@ -1,5 +1,6 @@
|
||||||
import { IMessageContext } from "@saleor/components/messages";
|
import { IMessageContext } from "@saleor/components/messages";
|
||||||
import { APP_DEFAULT_URI, APP_MOUNT_URI, DEMO_MODE } from "@saleor/config";
|
import { APP_DEFAULT_URI, APP_MOUNT_URI, DEMO_MODE } from "@saleor/config";
|
||||||
|
import useLocalStorage from "@saleor/hooks/useLocalStorage";
|
||||||
import useNavigator from "@saleor/hooks/useNavigator";
|
import useNavigator from "@saleor/hooks/useNavigator";
|
||||||
import { commonMessages } from "@saleor/intl";
|
import { commonMessages } from "@saleor/intl";
|
||||||
import {
|
import {
|
||||||
|
@ -49,6 +50,10 @@ export function useAuthProvider({
|
||||||
} = useAuth();
|
} = useAuth();
|
||||||
const navigate = useNavigator();
|
const navigate = useNavigator();
|
||||||
const { authenticated, authenticating, user } = useAuthState();
|
const { authenticated, authenticating, user } = useAuthState();
|
||||||
|
const [requestedExternalPluginId] = useLocalStorage(
|
||||||
|
"requestedExternalPluginId",
|
||||||
|
null
|
||||||
|
);
|
||||||
const [error, setError] = useState<UserContextError>();
|
const [error, setError] = useState<UserContextError>();
|
||||||
const permitCredentialsAPI = useRef(true);
|
const permitCredentialsAPI = useRef(true);
|
||||||
|
|
||||||
|
@ -65,7 +70,12 @@ export function useAuthProvider({
|
||||||
}, [authenticated]);
|
}, [authenticated]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if (!authenticated && !authenticating && permitCredentialsAPI.current) {
|
if (
|
||||||
|
!authenticated &&
|
||||||
|
!authenticating &&
|
||||||
|
!requestedExternalPluginId &&
|
||||||
|
permitCredentialsAPI.current
|
||||||
|
) {
|
||||||
permitCredentialsAPI.current = false;
|
permitCredentialsAPI.current = false;
|
||||||
loginWithCredentialsManagementAPI(handleLogin);
|
loginWithCredentialsManagementAPI(handleLogin);
|
||||||
}
|
}
|
||||||
|
|
|
@ -76,6 +76,7 @@ const LoginView: React.FC<LoginViewProps> = ({ params }) => {
|
||||||
code,
|
code,
|
||||||
state
|
state
|
||||||
});
|
});
|
||||||
|
setRequestedExternalPluginId(null);
|
||||||
if (result && !result?.errors?.length) {
|
if (result && !result?.errors?.length) {
|
||||||
navigate(fallbackUri ?? "/");
|
navigate(fallbackUri ?? "/");
|
||||||
setFallbackUri(null);
|
setFallbackUri(null);
|
||||||
|
|
Loading…
Reference in a new issue