Skip to content

Commit 3c2dfe6

Browse files
committed
cookie token done
1 parent aec5901 commit 3c2dfe6

File tree

122 files changed

+9894
-4
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+9894
-4
lines changed
Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
const config={
2+
production :{
3+
SECRET: process.env.SECRET,
4+
DATABASE: process.env.MONGODB_URI
5+
},
6+
default : {
7+
SECRET: 'mysecretkey',
8+
DATABASE: 'mongodb://localhost:27017/Users'
9+
}
10+
}
11+
12+
13+
exports.get = function get(env){
14+
return config[env] || config.default
15+
}

login , sign-up rest api's/index.js

Lines changed: 22 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,13 +4,15 @@ const bodyparser=require('body-parser');
44
const bcrypt=require('bcrypt');
55
const User=require('./models/user');
66
const db=require('./mysetup/myurl').myurl;
7+
const passport=require('passport');
78
var saltRouds = 10;
89

910
var app=express();
1011
// app use
1112
app.use(bodyparser.urlencoded({extended : false}));
1213
app.use(bodyparser.json());
1314

15+
1416
// database connection
1517
mongooses.connect(db).then(()=>{
1618
console.log('databse is connected');
@@ -55,21 +57,38 @@ app.post('/login', function(req,res){
5557
newUser.password=req.body.password
5658

5759
User.findOne({email: newUser.email},function(err,user){
60+
// user not found
5861
if(!user) res.status(400).json({isAuth: false, message :'User doesnt exists'});
59-
bcrypt.compare(newUser.password, user.password, function(err,result){
62+
63+
//comparing password
64+
bcrypt.compare(newUser.password, user.password, function(err,result){
6065
if(err) console.log('error is ', err.message);
6166
else if(result==true){
62-
res.status(200).json({isAuth : true, message: 'User authenticated'});
67+
// passowrd matched
68+
//token genearated
69+
user.generateToken((err,user)=>{
70+
if(err) return res.status(400).send(err);
71+
res.cookie('auth',user.token).json({
72+
isAuth : true,
73+
id : user._id,
74+
email : user.email
75+
})
76+
});
6377
}
6478
else{
79+
//password does not match
6580
res.status(400).json({isAuth : false, message: 'Password is incorrect'});
6681
}
67-
})
82+
});
83+
84+
6885
}).catch(err=>{
6986
console.log('error is ', err.message);
7087
});
7188
});
7289

90+
91+
7392
app.get('/',function(req,res){
7493
res.status(200).send(`hyy`);
7594
})

login , sign-up rest api's/models/user.js

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
var mongoose=require('mongoose');
2+
const bcrypt =require('bcrypt');
3+
const jwt =require('jsonwebtoken');
4+
const config =require('./../config/config').get(process.env.NODE_ENV);
25
const UserSchema= mongoose.Schema({
36
email:{
47
type:String,
@@ -9,4 +12,34 @@ const UserSchema= mongoose.Schema({
912
require: true
1013
}
1114
});
15+
UserSchema.methods.generateToken =function(cb){
16+
var user =this;
17+
var token = jwt.sign(user._id.toHexString(),config.SECRET);
18+
19+
user.token =token;
20+
user.save(function(err,user){
21+
if(err) return cb(err);
22+
cb(null,user);
23+
})
24+
}
25+
26+
27+
UserSchema.statics.findByToken = function(token,cb){
28+
var user =this;
29+
jwt.verify(token ,config.SECRET,function(err,decode){
30+
user.findOne({"_id": decode,"token":token},function(err,user){
31+
if(err) return cb(err);
32+
cb(null,user)
33+
})
34+
});
35+
}
36+
37+
UserSchema.methods.deleteToken = function(token , cb){
38+
var user =this;
39+
40+
user.update({$unset:{token:1}},(err,user)=>{
41+
if(err) return cb(err);
42+
cb(null,user);
43+
})
44+
}
1245
module.exports=User=mongoose.model('UserSchema', UserSchema);

login , sign-up rest api's/node_modules/buffer-equal-constant-time/.npmignore

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/.travis.yml

Lines changed: 4 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/LICENSE.txt

Lines changed: 12 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/README.md

Lines changed: 50 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/index.js

Lines changed: 41 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/package.json

Lines changed: 55 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

login , sign-up rest api's/node_modules/buffer-equal-constant-time/test.js

Lines changed: 42 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)