Merge branch 'login-redirect-fix' into 'develop'
Redirect user away from /auth/sign_in after success, fixes #612 Closes #612 See merge request soapbox-pub/soapbox-fe!468
This commit is contained in:
commit
1fef983805
2 changed files with 12 additions and 2 deletions
|
@ -1,5 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
import { Redirect } from 'react-router-dom';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
import LoginForm from './login_form';
|
import LoginForm from './login_form';
|
||||||
import OtpAuthForm from './otp_auth_form';
|
import OtpAuthForm from './otp_auth_form';
|
||||||
|
@ -22,6 +23,7 @@ class LoginPage extends ImmutablePureComponent {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
mfa_auth_needed: false,
|
mfa_auth_needed: false,
|
||||||
mfa_token: '',
|
mfa_token: '',
|
||||||
|
shouldRedirect: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
getFormData = (form) => {
|
getFormData = (form) => {
|
||||||
|
@ -36,6 +38,7 @@ class LoginPage extends ImmutablePureComponent {
|
||||||
dispatch(logIn(username, password)).then(({ access_token }) => {
|
dispatch(logIn(username, password)).then(({ access_token }) => {
|
||||||
return dispatch(verifyCredentials(access_token));
|
return dispatch(verifyCredentials(access_token));
|
||||||
}).then(account => {
|
}).then(account => {
|
||||||
|
this.setState({ shouldRedirect: true });
|
||||||
if (typeof me === 'string') {
|
if (typeof me === 'string') {
|
||||||
dispatch(switchAccount(account.id));
|
dispatch(switchAccount(account.id));
|
||||||
}
|
}
|
||||||
|
@ -50,7 +53,9 @@ class LoginPage extends ImmutablePureComponent {
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
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} />;
|
if (mfa_auth_needed) return <OtpAuthForm mfa_token={mfa_token} />;
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import React from 'react';
|
import React from 'react';
|
||||||
import { connect } from 'react-redux';
|
import { connect } from 'react-redux';
|
||||||
|
import { Redirect } from 'react-router-dom';
|
||||||
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
|
import { injectIntl, FormattedMessage, defineMessages } from 'react-intl';
|
||||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||||
import { otpVerify, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
|
import { otpVerify, verifyCredentials, switchAccount } from 'soapbox/actions/auth';
|
||||||
|
@ -18,6 +19,7 @@ class OtpAuthForm extends ImmutablePureComponent {
|
||||||
state = {
|
state = {
|
||||||
isLoading: false,
|
isLoading: false,
|
||||||
code_error: '',
|
code_error: '',
|
||||||
|
shouldRedirect: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
static propTypes = {
|
static propTypes = {
|
||||||
|
@ -39,6 +41,7 @@ class OtpAuthForm extends ImmutablePureComponent {
|
||||||
this.setState({ code_error: false });
|
this.setState({ code_error: false });
|
||||||
return dispatch(verifyCredentials(access_token));
|
return dispatch(verifyCredentials(access_token));
|
||||||
}).then(account => {
|
}).then(account => {
|
||||||
|
this.setState({ shouldRedirect: true });
|
||||||
return dispatch(switchAccount(account.id));
|
return dispatch(switchAccount(account.id));
|
||||||
}).catch(error => {
|
}).catch(error => {
|
||||||
this.setState({ isLoading: false });
|
this.setState({ isLoading: false });
|
||||||
|
@ -52,7 +55,9 @@ class OtpAuthForm extends ImmutablePureComponent {
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { intl } = this.props;
|
const { intl } = this.props;
|
||||||
const { code_error } = this.state;
|
const { code_error, shouldRedirect } = this.state;
|
||||||
|
|
||||||
|
if (shouldRedirect) return <Redirect to='/' />;
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<form className='simple_form new_user otp-auth' method='post' onSubmit={this.handleSubmit}>
|
<form className='simple_form new_user otp-auth' method='post' onSubmit={this.handleSubmit}>
|
||||||
|
|
Loading…
Reference in a new issue