Skip to content

Commit

Permalink
Added simple session example and updated readmes
Browse files Browse the repository at this point in the history
  • Loading branch information
skw committed May 15, 2013
1 parent 909c9f5 commit 2dbbb3c
Show file tree
Hide file tree
Showing 8 changed files with 54 additions and 12 deletions.
15 changes: 9 additions & 6 deletions history.md
@@ -1,7 +1,10 @@
1.8
==================
# 1.8

* added history.md for change tracking
* updated stable dependencies
* added bootstrap-stylus
* updated readme.md to better reflect technologies and dependencies
- added history.md for change tracking
- updated stable dependencies
- added bootstrap-stylus
- updated readme.md to better reflect technologies and dependencies
- added session example
- see `./src/controllers/private.coffee` for examples of privates controllers
- see `./src/routes.coffee` for auth through routing example
- see `./src/index.coffee` for session config example
2 changes: 1 addition & 1 deletion package.json
Expand Up @@ -12,7 +12,7 @@
, "markdown": "0.4.0"
, "passport": "0.1.16"
, "which": "1.0.5"
, "mongoose": "3.6.*"
, "mongoose": "3.6.x"
, "wrench": "1.4.4"
}, "scripts": {
"install": "node node_modules/coffee-script/bin/cake build",
Expand Down
8 changes: 4 additions & 4 deletions readme.md
@@ -1,4 +1,4 @@
# Express Coffee Template 7 (1.7)
# Express Coffee Template 8 (1.8)

This is a Node Express CoffeeScript Stack Template

Expand All @@ -8,15 +8,15 @@ to use coffee-script and stylus for the client side.
## Technologies
This is a template that can be used to create nodejs applications using

* Node v0.8.*
* Node v0.8.x
* Express v3.0.5
* CoffeeScript! v1.5.0
* Jade v0.26.0
* Stylus v0.27.*
* Stylus v0.27.x
* bootstrap-stylus 2.3.1 (not a npm module)
* Nib v0.9.0
* Connect Assets v2.3.3
* MongoDB
* MongoDB / Mongoose 3.6.x

## Requirements

Expand Down
17 changes: 17 additions & 0 deletions src/controllers/private.coffee
@@ -0,0 +1,17 @@
module.exports =

# Lists all posts
index: (req, res) ->
res.send 'This is a private page.'

# Create a session
create: (req, res) ->
req.session.authorized = 'test'
res.redirect '/private'

# Destroy a session
destroy: (req, res) ->
delete req.session.authorized
res.redirect '/private'


8 changes: 7 additions & 1 deletion src/index.coffee
Expand Up @@ -29,7 +29,13 @@ else
app.use assets()
# Set the public folder as static assets.
app.use express.static(process.cwd() + '/public')

# Express Session
store = new express.session.MemoryStore
app.use express.cookieParser()
app.use express.session(
secret: 'shhh'
store: store
)

# Set View Engine.
app.set 'view engine', 'jade'
Expand Down
13 changes: 13 additions & 0 deletions src/routes.coffee
Expand Up @@ -5,6 +5,19 @@
# We are using method names to determine controller actions for clearness.

module.exports = (app) ->

# simple session authorization
checkAuth = (req, res, next) ->
unless req.session.authorized
res.statusCode = 401
res.render '401', 401
else
next()


app.all '/private', checkAuth, (req, res, next) ->
routeMvc('private', 'index', req, res, next)

# - _/_ -> controllers/index/index method
app.all '/', (req, res, next) ->
routeMvc('index', 'index', req, res, next)
Expand Down
2 changes: 2 additions & 0 deletions views/401.jade
@@ -0,0 +1,2 @@
h1 401
p Unauthorized access.
1 change: 1 addition & 0 deletions views/404.jade
@@ -1 +1,2 @@
h1 404
p Sorry! that link doesn't exist.

0 comments on commit 2dbbb3c

Please sign in to comment.