Redirect user back to the first landing page after external login (#1742)
* Preserve fallbackuri on external login * Change default uri to "/"
This commit is contained in:
parent
03f6034531
commit
ede2094d30
1 changed files with 9 additions and 1 deletions
|
@ -42,6 +42,11 @@ const LoginView: React.FC<LoginViewProps> = ({ params }) => {
|
|||
setRequestedExternalPluginId
|
||||
] = useLocalStorage("requestedExternalPluginId", null);
|
||||
|
||||
const [fallbackUri, setFallbackUri] = useLocalStorage(
|
||||
"externalLoginFallbackUri",
|
||||
null
|
||||
);
|
||||
|
||||
const handleSubmit = async (data: LoginFormData) => {
|
||||
const result = await login(data.email, data.password);
|
||||
const errors = result?.errors || [];
|
||||
|
@ -50,6 +55,8 @@ const LoginView: React.FC<LoginViewProps> = ({ params }) => {
|
|||
};
|
||||
|
||||
const handleRequestExternalAuthentication = async (pluginId: string) => {
|
||||
setFallbackUri(location.pathname);
|
||||
|
||||
const result = await requestLoginByExternalPlugin(pluginId, {
|
||||
redirectUri: urlJoin(
|
||||
window.location.origin,
|
||||
|
@ -70,7 +77,8 @@ const LoginView: React.FC<LoginViewProps> = ({ params }) => {
|
|||
state
|
||||
});
|
||||
if (result && !result?.errors?.length) {
|
||||
navigate(APP_DEFAULT_URI);
|
||||
navigate(fallbackUri ?? "/");
|
||||
setFallbackUri(null);
|
||||
}
|
||||
};
|
||||
|
||||
|
|
Loading…
Reference in a new issue