Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
Create a log out route to destroy a user's session and log them out of the authentication system.
The Log Out Route code
// GET /logout
router.get('/logout', function(req, res, next) {
if (req.session) {
// delete session object
req.session.destroy(function(err) {
if(err) {
return next(err);
} else {
return res.redirect('/');
}
});
}
});
Related Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign upRelated Discussions
Have questions about this video? Start a discussion with the community and Treehouse staff.
Sign up
In the authentication system we've
created, when a user logs in,
0:00
Express creates a session
containing a user ID.
0:04
Basically, the existence
of a session with a user ID
0:07
indicates if a visitor is logged in or
not.
0:10
So the simplest way to log a visitor out
is to remove or destroy that session.
0:13
Express lets us do that easily.
0:18
So let's add another route to our app.
0:20
I'll open the index.js file
in the route's directory, and
0:22
I'll add a get route to /logout.
0:27
Let's see, right about here.
0:30
All right.
First,
0:44
I'll check to see if a session exists.
0:45
And if it does, I'll just delete it.
0:51
The sessions destroy method
takes a callback function,
0:58
which indicates what the app should
do after it destroys the session.
1:01
In this case, let's check to
see if there were any errors.
1:08
This is a step we do with
most callbacks and note.
1:11
And if not,
1:14
we'll just redirect the user who's now
logged out to the site's homepage.
1:15
Pretty simple, right?
1:20
Let's see how it works.
1:21
I'll save this file.
1:22
I still have nodemon running
from the last video.
1:24
So my app is updating each
time I make a change to it.
1:27
I can just switch to my browser and
go to localhost:3000.
1:30
Let's see how this works.
1:35
I'll log in.
1:36
Now there's the logout button.
1:39
[SOUND] I'm back on the homepage, and
the sign up and login button appears,
1:43
letting me know I'm no longer logged in.
1:47
When I check out my profile,
I'm not authorized cuz I'm not logged in.
1:49
In the next videos, I'll talk
more about Express middleware and
1:54
show you how to write your
own custom middleware.
1:57
See you there.
1:59
You need to sign up for Treehouse in order to download course files.
Sign upYou need to sign up for Treehouse in order to set up Workspace
Sign up