Skip to content

Instantly share code, notes, and snippets.

@carlqt
Last active June 8, 2017 01:28
Show Gist options
  • Select an option

  • Save carlqt/6e4926d250d9e185e9f67a6ce804ca01 to your computer and use it in GitHub Desktop.

Select an option

Save carlqt/6e4926d250d9e185e9f67a6ce804ca01 to your computer and use it in GitHub Desktop.

Revisions

  1. carlqt revised this gist Jun 8, 2017. No changes.
  2. carlqt revised this gist Jun 8, 2017. 2 changed files with 2 additions and 2 deletions.
    3 changes: 1 addition & 2 deletions AuthRoute.js
    Original file line number Diff line number Diff line change
    @@ -1,4 +1,3 @@

    //AuthRoute.js snippet
    import React from 'react';
    import { Route, Redirect } from 'react-router-dom';
    @@ -29,4 +28,4 @@ class AuthRoute extends React.Component {
    }
    }

    export default AuthRoute;
    export default AuthRoute;
    1 change: 1 addition & 0 deletions Routes.js
    Original file line number Diff line number Diff line change
    @@ -22,3 +22,4 @@ export default () => (
    </AuthRoute>
    </Switch>
    )

  3. carlqt revised this gist Jun 8, 2017. 2 changed files with 24 additions and 22 deletions.
    22 changes: 0 additions & 22 deletions authcomponent.js → AuthRoute.js
    Original file line number Diff line number Diff line change
    @@ -1,25 +1,3 @@
    // Routes.js file snippet
    export default () => (
    <Switch>
    <Route exact path="/" component={Cards} />
    <Route exact path="/property/:name" component={Property} />
    <Route exact path="/property_upload" component={Upload} />
    <Route exact path="/agent/sign_in" component={AgentSignIn} />
    {/*<Route exact path="/agent/protected" component={Protected} />*/}
    <AuthRoute back={"/agent/sign_in"}>
    <Route exact path="/agent/protected" component={Protected} />
    <Route exact path="/agent/superprotected" component={SuperProtected} />
    </AuthRoute>
    </Switch>
    )




    /////////////////////////////////////////////////////////////////////////////




    //AuthRoute.js snippet
    import React from 'react';
    24 changes: 24 additions & 0 deletions Routes.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,24 @@
    import { Route, Switch } from 'react-router-dom';

    import React from 'react';
    import Property from './Property/Property';
    import Upload from './Upload/Index';
    import Cards from './Cards/Cards';
    import AgentSignIn from './Agent/SignIn/SignIn';
    import Protected from './Agent/Protected';
    import SuperProtected from './Agent/superprotected';
    import AuthRoute from './hoc/AuthRoute';

    export default () => (
    <Switch>
    <Route exact path="/" component={Cards} />
    <Route exact path="/property/:name" component={Property} />
    <Route exact path="/property_upload" component={Upload} />
    <Route exact path="/agent/sign_in" component={AgentSignIn} />
    {/*<Route exact path="/agent/protected" component={Protected} />*/}
    <AuthRoute back={"/agent/sign_in"}>
    <Route exact path="/agent/protected" component={Protected} />
    <Route exact path="/agent/superprotected" component={SuperProtected} />
    </AuthRoute>
    </Switch>
    )
  4. carlqt created this gist Jun 8, 2017.
    54 changes: 54 additions & 0 deletions authcomponent.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,54 @@
    // Routes.js file snippet
    export default () => (
    <Switch>
    <Route exact path="/" component={Cards} />
    <Route exact path="/property/:name" component={Property} />
    <Route exact path="/property_upload" component={Upload} />
    <Route exact path="/agent/sign_in" component={AgentSignIn} />
    {/*<Route exact path="/agent/protected" component={Protected} />*/}
    <AuthRoute back={"/agent/sign_in"}>
    <Route exact path="/agent/protected" component={Protected} />
    <Route exact path="/agent/superprotected" component={SuperProtected} />
    </AuthRoute>
    </Switch>
    )




    /////////////////////////////////////////////////////////////////////////////




    //AuthRoute.js snippet
    import React from 'react';
    import { Route, Redirect } from 'react-router-dom';

    class AuthRoute extends React.Component {
    constructor(props) {
    super(props);

    this.authenticated = this.authenticated.bind(this);
    }

    authenticated() {
    // Check for the token here
    // If token does not exists, return false
    // If token exists, check if it is also in the redux state
    // > if token is not in the redux state, validate token in the server
    // > If validation failed, return false else return true and store in redux state
    // If token exists in redux state as well, return true
    return false;
    }

    render() {
    return(
    <div>
    {this.authenticated() ? this.props.children : <Redirect to={this.props.back}/> }
    </div>
    )
    }
    }

    export default AuthRoute;