Implemented /auth/error path

This commit is contained in:
Jori Lallo 2016-08-28 10:59:34 -07:00
parent e4e5f900ee
commit 4ba98c9dcf
4 changed files with 38 additions and 1 deletions

View File

@ -29,6 +29,7 @@ import SlackAuth from 'scenes/SlackAuth';
import Error404 from 'scenes/Error404';
window.stores = stores;
import ErrorAuth from 'scenes/ErrorAuth';
let DevTools;
if (__DEV__) {
@ -78,6 +79,7 @@ render((
component={ SlackAuth }
apiPath="/auth.slackCommands"
/>
<Route path="/auth/error" component={ ErrorAuth } />
<Route path="/404" component={ Error404 } />
<Redirect from="*" to="/404" />

View File

@ -0,0 +1,23 @@
import React from 'react';
import { Link } from 'react-router';
import Layout from 'components/Layout';
import CenteredContent from 'components/CenteredContent';
class ErrorAuth extends React.Component {
render() {
return (
<Layout
titleText="Not Found"
>
<CenteredContent>
<h1>Authentication failed</h1>
<p>We were unable to log you in. <Link to="/">Please try again.</Link></p>
</CenteredContent>
</Layout>
);
}
}
export default ErrorAuth;

View File

@ -0,0 +1,2 @@
import ErrorAuth from './ErrorAuth';
export default ErrorAuth;

View File

@ -12,7 +12,17 @@ class SlackAuth extends React.Component {
}
componentDidMount = async () => {
const { code, state } = this.props.location.query;
const { error, code, state } = this.props.location.query;
if (error) {
if (error === 'access_denied') {
// User selected "Deny" access on Slack OAuth
browserHistory.push('/');
} else {
browserHistory.push('/auth/error');
}
return;
}
if (this.props.route.apiPath) {
try {