Delete Account on UI can log the user out

This commit is contained in:
Aaron Sun 2019-10-23 17:18:52 -04:00
parent bc0b2549b4
commit ad853923c8
5 changed files with 70 additions and 31 deletions

View File

@ -166,34 +166,6 @@ exports.deleteUser = (req, res) => {
res.status(500).send("Cannot get user");
}
});
//var user = firebase.auth().currentUser;
/*user.delete()
.then(function() {
console.log("User successfully deleted!");
res.status(200).send("Deleted user.");
return;
})
.catch(function(error) {
console.log("Error deleting user.", err);
res.status(500).send("Failed to delete user.");
});*/
/*admin.auth().getUserByEmail(req.body.email)
.then(userRecord => {
const uid = userRecord.uid;
return admin.auth().deleteUser(uid);
})
.then(() => {
console.log("User successfully deleted!");
res.status(200).send("Deleted user.");
return;
})
.catch(err => {
console.log("Error deleting user.", err);
res.status(500).send("Failed to delete user.");
});*/
};
// Returns all data in the database for the user who is currently signed in

View File

@ -25,6 +25,7 @@ import signup from './pages/Signup';
import login from './pages/Login';
import user from './pages/user';
import logout from './pages/Logout';
import Delete from './pages/Delete';
import writeMicroblog from './Writing_Microblogs.js';
import editProfile from './pages/editProfile';
import userLine from './Userline.js';
@ -61,6 +62,7 @@ class App extends Component {
<AuthRoute exact path="/signup" component={signup} />
<AuthRoute exact path="/login" component={login} />
<Route exact path="/logout" component={logout} />
<Route exact path="/delete" component={Delete} />
<Route exact path="/user" component={user} />
<Route exact path="/home" component={writeMicroblog} />

View File

@ -53,6 +53,9 @@ import withStyles from "@material-ui/core/styles/withStyles";
<Button component={ Link } to='/logout'>
Logout
</Button>
<Button component={ Link } to='/delete'>
Delete Account
</Button>
</ToolBar>
</AppBar>
)

View File

@ -0,0 +1,56 @@
/* eslint-disable */
import React, { Component } from "react";
import PropTypes from "prop-types";
// Material UI stuff
import Button from "@material-ui/core/Button";
import withStyles from "@material-ui/core/styles/withStyles";
// Redux stuff
import { deleteUser } from "../redux/actions/userActions";
import { connect } from "react-redux";
const styles = {
form: {
textAlign: "center"
},
textField: {
marginBottom: 30
},
pageTitle: {
marginBottom: 40
},
button: {
positon: "relative",
marginBottom: 30
},
progress: {
position: "absolute"
}
};
export class Delete extends Component {
componentDidMount() {
this.props.deleteUser();
this.props.history.push('/');
}
render() {
return null;
}
}
const mapStateToProps = (state) => ({
user: state.user
});
const mapActionsToProps = { deleteUser };
Delete.propTypes = {
deleteUser: PropTypes.func.isRequired,
user: PropTypes.object.isRequired,
classes: PropTypes.object.isRequired
};
export default connect(mapStateToProps, mapActionsToProps)(withStyles(styles)(Delete));

View File

@ -61,6 +61,12 @@ export const logoutUser = () => (dispatch) => {
dispatch({ type: SET_UNAUTHENTICATED });
}
export const deleteUser = () => (dispatch) => {
localStorage.removeItem('FBIdToken');
delete axios.defaults.headers.common['Authorization'];
dispatch({ type: SET_UNAUTHENTICATED });
}
const setAuthorizationHeader = (token) => {
const FBIdToken = `Bearer ${token}`;
localStorage.setItem('FBIdToken', FBIdToken);