Skip to content

Instantly share code, notes, and snippets.

@RizkyRajitha
Created March 23, 2019 13:53
Show Gist options
  • Save RizkyRajitha/40112fdf26c87496b6feeb61937472b9 to your computer and use it in GitHub Desktop.
Save RizkyRajitha/40112fdf26c87496b6feeb61937472b9 to your computer and use it in GitHub Desktop.
//frontend
import React, { Component } from "react";
import jsonwebtoken from "jsonwebtoken";
import { Redirect } from "react-router-dom";
import axios from "axios";
class Register extends Component {
state = {
email: "",
registered: false,
password: "",
firstname: "",
lastname: ""
};
changeHandler = e => {
this.setState({
[e.target.id]: e.target.value
});
};
// changeHandlerPassword = e => {
// console.log(
// `ps1 ${this.state} ps2 ${e.target.value} +++ ${this.state.passsword !=
// e.target.value}`
// );
// if (this.state.passsword !== String(e.target.value).trim) {
// console.log(
// "no match " + this.state.password + " " + e.target.value + "-"
// );
// document.querySelector(".psscheck").innerHTML = "password dont match ";
// } else {
// // this.setState({
// // password2: e.target.value
// // });
// console.log("match");
// document.querySelector(".psscheck").innerHTML = "password match ";
// }
// };
componentDidMount() {
const jwt = localStorage.getItem("jwt");
console.log('jwt token -- - -- >>>'+jwt);
try {
console.log("in register");
var pay = jsonwebtoken.verify(jwt, "authdemo");
console.log('payload - '+pay);
console.log('************************************' )
} catch (error) {
console.log("not logged in redirecting...............");
//e.preventDefault();
this.props.history.push("/Login");
}
}
submitHandler = e => {
e.preventDefault();
console.log(this.state);
var jwt = localStorage.getItem("jwt");
var config = {
headers: { authorization: jwt }
};
//axios.post('/save', { firstName: 'Marlon' }, config);
axios
.post(
"/usr/reg",
{
email: this.state.email,
password: this.state.password,
firstname: this.state.firstname,
lastname: this.state.lastname
},
config
)
.then(response => {
console.log("resonse came - -");
console.log(response.data);
this.setState({ registered: true });
localStorage.setItem("jwt", response.data);
})
.catch(err => {
console.log(err);
});
};
render() {
if (this.state.registered === false) {
return (
<div className="container">
<div class="row">
<div class="col-sm" />
<div class="col-sm">
<form onSubmit={this.submitHandler}>
<div class="form-group">
<label>username</label>
<input
required
type="text"
className="form-control"
id="username"
placeholder="enter username"
onChange={this.changeHandler}
/>
</div>
<div class="form-group">
<label>email</label>
<input
required
type="email"
className="form-control"
id="email"
onChange={this.changeHandler}
placeholder="enter email"
/>
</div>
<div class="form-group">
<label>first Name</label>
<input
required
type="text"
className="form-control"
id="firstname"
onChange={this.changeHandler}
placeholder="enter firstname"
/>
</div>
<div class="form-group">
<label>last Name</label>
<input
required
type="text"
className="form-control"
id="lastname"
onChange={this.changeHandler}
placeholder="enter lastname"
/>
</div>
<div class="form-group">
<label>password</label>
<input
required
type="password"
id="password"
placeholder="enter password"
className="form-control"
onChange={this.changeHandler}
/>
</div>
{/* <div class="form-group">
<label>re enter password</label>
<input
type="password"
id="password2"
placeholder="enter password again"
onChange={this.changeHandlerPassword}
className="form-control"
/>
<label className="psscheck" />
</div> */}
<input type="submit" class="btn btn-primary" value="sign in" />
</form>
</div>
<div class="col-sm" />
</div>
</div>
);
} else {
return <Redirect to={"/dashboard"} />;
}
}
}
export default Register;
//backend
router.post("/reg", (req, res, next) => {
passport.authenticate(
"jwtstrategy",
{ session: false },
(err, user, info) => {
console.log('-----in reg ------')
console.log(info);
if(user){
console.log(`************${req.headers.authorization}****************`);
const newuser = new User({
email: req.body.email,
hash: req.body.password,
firstName: req.body.firstname,
lastName: req.body.lastname
});
console.log(`email - ${req.body.email} pass - ${req.body.password}`);
//newuser.setpass(req.body.password);
newuser
.save()
.then(result => {
console.log("succsess");
//var token = result.generateJWT();
return res.status(200).send({});
})
.catch(err => {
console.log(" reg err - " + err);
res.status(403).json(err);
});
}
}
)(req, res, next);
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment