Removed auth

Doesn't really need user account, no sensitive data held in DB, plus routes that do stuff are rate limited anyway.

Shouldn't be accessible to untrusted users (i.e. should be behind a RP that handles user auth)
This commit is contained in:
Henry Whitaker
2020-04-08 19:45:20 +01:00
parent bff43c205c
commit 4f79645191
6 changed files with 28 additions and 243 deletions

View File

@@ -12,7 +12,6 @@ export default class HistoryGraph extends Component {
this.state = {
days: 30,
token: this.props.token,
duData: {},
duOptions: {},
pingData: {},
@@ -31,7 +30,7 @@ export default class HistoryGraph extends Component {
}
getData = (days = this.state.days) => {
var url = '/api/speedtest/time/' + days + '?token=' + this.state.token.access_token;
var url = '/api/speedtest/time/' + days;
Axios.get(url)
.then((resp) => {

View File

@@ -12,7 +12,6 @@ export default class LatestResults extends Component {
super(props)
this.state = {
token: this.props.token,
data: {},
interval: null,
loading: true,
@@ -28,7 +27,7 @@ export default class LatestResults extends Component {
}
getData = () => {
var url = '/api/speedtest/latest?token=' + this.state.token.access_token;
var url = '/api/speedtest/latest';
Axios.get(url)
.then((resp) => {
@@ -43,7 +42,7 @@ export default class LatestResults extends Component {
}
newScan = () => {
var url = '/api/speedtest/run?token=' + this.state.token.access_token;
var url = '/api/speedtest/run';
Axios.get(url)
.then((resp) => {

View File

@@ -5,22 +5,13 @@ import LatestResults from '../Graphics/LatestResults';
import Footer from './Footer';
export default class HomePage extends Component {
constructor(props) {
super(props)
this.state = {
token: this.props.token,
}
}
render() {
var token = this.state.token;
return (
<div>
<div className="my-4">
<LatestResults token={token} />
<HistoryGraph token={token} />
<LatestResults />
<HistoryGraph />
</div>
<Footer />
</div>

101
resources/js/index.js vendored
View File

@@ -15,102 +15,25 @@ export default class Index extends Component {
this.state = {
loading: true,
redirectLogin: true,
redirectHome: false,
token: null,
user: null,
}
}
componentDidMount() {
this.lookForToken();
}
lookForToken = () => {
var token = JSON.parse(localStorage.getItem('token'));
if(token == null) {
this.setState({
loading: false,
});
} else {
this.tryToken(token)
}
}
setToken = (token) => {
localStorage.setItem('token', JSON.stringify(token));
this.setState({
loading: true,
token: token,
});
this.tryToken(token);
}
tryToken = (token, reload = true) => {
Axios.get('/api/auth/me?token=' + token.access_token)
.then((resp) => {
this.setState({
user: resp.data,
loading: false,
redirectLogin: false,
token: token
});
if(reload) {
this.setState({
redirectHome: true
});
}
})
.catch((err) => {
console.log('Invalid token');
console.log(err);
this.setState({
redirectLogin: true
});
})
}
render() {
var loading = this.state.loading;
var redirectLogin = this.state.redirectLogin;
var redirectHome = this.state.redirectHome;
var user = this.state.user;
var token = this.state.token;
return (
<div>
{loading ?
<div>
<Loader />
</div>
:
<div>
<BrowserRouter>
<Route render={(props) => (<ToastContainer />)} />
<Switch>
<Route exact path="/" render={(props) => (
<div>
<HomePage user={user} token={token} />
</div>
)} />
<Route exact path="/login" render={(props) => (
<div>
<Login setToken={this.setToken} />
</div>
)} />
<Route exact path="/error/:code" render={(props) => ( <ErrorPage code={props.match.params.code} /> )} />
<Route render={(props) => (<ErrorPage code="404" />)} />
</Switch>
{redirectLogin &&
<Redirect to="/login"></Redirect>
}
{redirectHome &&
<Redirect to="/"></Redirect>
}
</BrowserRouter>
</div>
}
</div>
<BrowserRouter>
<Route render={(props) => (<ToastContainer />)} />
<Switch>
<Route exact path="/" render={(props) => (
<div>
<HomePage />
</div>
)} />
<Route exact path="/error/:code" render={(props) => ( <ErrorPage code={props.match.params.code} /> )} />
<Route render={(props) => (<ErrorPage code="404" />)} />
</Switch>
</BrowserRouter>
);
}
}