Redirect user away from /auth/sign_in after success

merge-requests/468/head
Alex Gleason 2021-04-06 11:58:14 -05:00
rodzic c674a45326
commit 7567f7bd45
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 7211D1F99744FBB7
2 zmienionych plików z 12 dodań i 2 usunięć

Wyświetl plik

@ -1,5 +1,6 @@
import React from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import ImmutablePureComponent from 'react-immutable-pure-component';
import LoginForm from './login_form';
import OtpAuthForm from './otp_auth_form';
@ -22,6 +23,7 @@ class LoginPage extends ImmutablePureComponent {
isLoading: false,
mfa_auth_needed: false,
mfa_token: '',
shouldRedirect: false,
}
getFormData = (form) => {
@ -36,6 +38,7 @@ class LoginPage extends ImmutablePureComponent {
dispatch(logIn(username, password)).then(({ access_token }) => {
return dispatch(verifyCredentials(access_token));
}).then(account => {
this.setState({ shouldRedirect: true });
if (typeof me === 'string') {
dispatch(switchAccount(account.id));
}
@ -50,7 +53,9 @@ class LoginPage extends ImmutablePureComponent {
}
render() {
const { isLoading, mfa_auth_needed, mfa_token } = this.state;
const { isLoading, mfa_auth_needed, mfa_token, shouldRedirect } = this.state;
if (shouldRedirect) return <Redirect to='/' />;
if (mfa_auth_needed) return <OtpAuthForm mfa_token={mfa_token} />;

Wyświetl plik

@ -1,5 +1,6 @@
import React from 'react';
import { connect } from 'react-redux';
import { Redirect } from 'react-router-dom';
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
import ImmutablePureComponent from 'react-immutable-pure-component';
import { otpVerify, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
@ -18,6 +19,7 @@ class OtpAuthForm extends ImmutablePureComponent {
state = {
isLoading: false,
code_error: '',
shouldRedirect: false,
}
static propTypes = {
@ -39,6 +41,7 @@ class OtpAuthForm extends ImmutablePureComponent {
this.setState({ code_error: false });
return dispatch(verifyCredentials(access_token));
}).then(account => {
this.setState({ shouldRedirect: true });
return dispatch(switchAccount(account.id));
}).catch(error => {
this.setState({ isLoading: false });
@ -52,7 +55,9 @@ class OtpAuthForm extends ImmutablePureComponent {
render() {
const { intl } = this.props;
const { code_error } = this.state;
const { code_error, shouldRedirect } = this.state;
if (shouldRedirect) return <Redirect to='/' />;
return (
<form className='simple_form new_user otp-auth' method='post' onSubmit={this.handleSubmit}>