-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 82f82c2
Showing
33 changed files
with
663 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,5 @@ | ||
.DS_Store | ||
node_modules | ||
npm-debug.log | ||
.idea* | ||
/public/derby |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
{ | ||
"generator-derby": { | ||
"app": "derby login example", | ||
"coffee": false, | ||
"stylus": true, | ||
"jade": false, | ||
"project": "derby login example", | ||
"apps": [ | ||
"app" | ||
] | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
derby-login-example | ||
============= |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,45 @@ | ||
var derby = require('derby'); | ||
|
||
var app = module.exports = derby.createApp('app', __filename); | ||
|
||
if (!derby.util.isProduction) global.app = app; | ||
|
||
app.use(require('d-bootstrap')); | ||
app.use(require('derby-login/components/auth')); | ||
app.serverUse(module, 'derby-stylus'); | ||
|
||
app.loadViews(__dirname + '/views'); | ||
app.loadStyles(__dirname + '/styles'); | ||
|
||
app.get('*', function(page, model, params, next) { | ||
if (model.get('_session.loggedIn')) { | ||
var userId = model.get('_session.userId'); | ||
var $user = model.at('users.' + userId); | ||
model.subscribe($user, function() { | ||
model.ref('_session.user', $user); | ||
next(); | ||
}); | ||
} else { | ||
next(); | ||
} | ||
}); | ||
|
||
app.get('/', function(page, model){ | ||
page.render('home'); | ||
}); | ||
|
||
app.get('/emailchangeconfirmed', function(page, model){ | ||
page.render('emailchangeconfirmed'); | ||
}); | ||
|
||
app.get('/registrationconfirmed', function(page, model){ | ||
page.render('registrationconfirmed'); | ||
}); | ||
|
||
app.proto.emailChanged = function(data) { | ||
alert('Confirmation email is sent to ' + data.email); | ||
} | ||
|
||
app.proto.passwordChanged = function(data) { | ||
alert('Password is changed'); | ||
} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<index:> | ||
<p>Email confirmed, thank you. <a href='/'>Go to app</a></p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,63 @@ | ||
<index:> | ||
<div class='row'> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
<p>UserId: {{_session.userId}}</p> | ||
{{if _session.user.email}} | ||
<p>Email: {{_session.user.email}}</p> | ||
{{/}} | ||
<p><a href='/auth/logout' class='btn btn-primary btn-block'>Logout with Link</a></p> | ||
<p><view name='auth:logout' text='Logout with Ajax' /></p> | ||
</div> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
{{if _session.user.email}} | ||
<p>Change password:</p> | ||
<view name='auth:changepassword' on-success='passwordChanged()' /> | ||
<br> | ||
<p>Change email:</p> | ||
<view name='auth:changeemail' on-success='emailChanged()' /> | ||
{{/}} | ||
</div> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
<p>OAuth providers:</p> | ||
<p> | ||
Github: | ||
{{if _session.user.github}} | ||
<a href='{{_session.user.github.profileUrl}}' target='_blank'>{{_session.user.github.username}}</a> | ||
{{else}} | ||
<a href='/auth/github'>Register</a> | ||
{{/}} | ||
</p> | ||
<p> | ||
Google: | ||
{{if _session.user.google}} | ||
<a href='https://plus.google.com/{{_session.user.google.id}}' target='_blank'>{{_session.user.google.displayName}}</a> | ||
{{else}} | ||
<a href='/auth/google'>Register</a> | ||
{{/}} | ||
</p> | ||
<p> | ||
Twitter: | ||
{{if _session.user.twitter}} | ||
<a href='https://twitter.com/{{_session.user.twitter.username}}' target='_blank'>{{_session.user.twitter.displayName}}</a> | ||
{{else}} | ||
<a href='/auth/twitter'>Register</a> | ||
{{/}} | ||
</p> | ||
<p> | ||
Facebook: | ||
{{if _session.user.facebook}} | ||
<a href='{{_session.user.facebook.profileUrl}}' target='_blank'>{{_session.user.facebook.displayName}}</a> | ||
{{else}} | ||
<a href='/auth/facebook'>Register</a> | ||
{{/}} | ||
</p> | ||
<p> | ||
Vkontakte: | ||
{{if _session.user.vkontakte}} | ||
<a href='{{_session.user.vkontakte.profileUrl}}' target='_blank'>{{_session.user.vkontakte.displayName}}</a> | ||
{{else}} | ||
<a href='/auth/vkontakte'>Register</a> | ||
{{/}} | ||
</p> | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<import: src='./emailchangeconfirmed'> | ||
<import: src='./home'> | ||
<import: src='./registrationconfirmed'> | ||
|
||
<Title:> | ||
{{_page.title}} | ||
|
||
<Body:> | ||
<view name="header"/> | ||
<view name="{{$render.ns}}"/> | ||
|
||
<header:> | ||
<h1>App</h1> | ||
<p>{{if _session.loggedIn}}loggedIn{{else}}notLoggedIn{{/}}</p> | ||
<br> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
<index:> | ||
<p>Registration confirmed, thank you. <a href='/'>Go to app</a></p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
var derby = require('derby'); | ||
|
||
var errorApp = module.exports = derby.createApp(); | ||
|
||
errorApp.serverUse(module, 'derby-stylus'); | ||
|
||
errorApp.loadViews(__dirname + '/views'); | ||
errorApp.loadStyles(__dirname + '/styles/index'); | ||
errorApp.loadStyles(__dirname + '/styles/reset'); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,9 @@ | ||
body | ||
padding: 2em | ||
|
||
h1 | ||
font-size: 2em | ||
margin-bottom: .5em | ||
|
||
p | ||
line-height: 2em |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
body,h1,h2,h3,h4,input,pre,select,textarea,th | ||
font: 13px/normal arial,sans-serif | ||
|
||
body,fieldset,form,h1,h2,h3,h4,input,ul,li,ol,p,td,textarea,th | ||
margin: 0 | ||
padding: 0 | ||
|
||
ul | ||
margin: 0 normal | ||
|
||
table | ||
border-collapse: collapse | ||
|
||
fieldset,img | ||
border: 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<Title:> | ||
Forbidden | ||
|
||
<Body:> | ||
<h1>403</h1> | ||
<p>Looks like you don't have permission to access <b>{{$render.url}}</b>.</p> | ||
<p>Try heading back to the <a href="/">home page</a>.</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
<Title:> | ||
Not found | ||
|
||
<Body:> | ||
<h1>404</h1> | ||
<p>Sorry, we can't find anything at <b>{{$render.url}}</b>.</p> | ||
<p>Try heading back to the <a href="/">home page</a>.</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
<Title:> | ||
Internal server error | ||
|
||
<Body:> | ||
<h1>500</h1> | ||
<p>Something went wrong on our end. Try giving us a minute to fix it and then <a href="javascript:window.location=window.location">reload your browser</a>.</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
<import: src="./403"> | ||
<import: src="./404"> | ||
<import: src="./500"> | ||
|
||
<!-- | ||
This is a static template file, so it doesn't have an associated app. | ||
It is rendered by the server via a staticPages renderer. | ||
Since static pages don't include the Derby client library, they can't have | ||
bound variables that automatically update. However, they do support initial | ||
template tag rendering from a context object and/or model. | ||
--> | ||
|
||
<Head:> | ||
<!-- This script is needed for Chrome, which doesn't go to the server | ||
to get the page when the user clicks back if using push/pop state --> | ||
<script> | ||
window.onpopstate = function (e) { | ||
var method = e.state && e.state.$method; | ||
if (!method) return; | ||
if (method === 'get') { | ||
window.location = window.location; | ||
} else { | ||
window.history.back(); | ||
} | ||
}; | ||
</script> | ||
|
||
<Title:> | ||
Unknown error | ||
|
||
<Body:> | ||
<h1>Unknown error</h1> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
var derby = require('derby'); | ||
|
||
var app = module.exports = derby.createApp('login', __filename); | ||
|
||
if (!derby.util.isProduction) global.app = app; | ||
|
||
app.use(require('d-bootstrap')); | ||
app.use(require('derby-login/components/notAuth')); | ||
app.serverUse(module, 'derby-stylus'); | ||
|
||
app.loadViews(__dirname + '/views'); | ||
app.loadStyles(__dirname + '/styles'); | ||
|
||
app.get('/confirmregistration', function(page, model){ | ||
page.render('confirmregistration'); | ||
}); | ||
|
||
app.get('/recoverpassword', function(page, model, params){ | ||
var secret = params.query.secret; | ||
model.set('_page.secret', secret); | ||
page.render('recoverpassword'); | ||
}); | ||
|
||
app.get('/login', function(page, model){ | ||
page.render('login'); | ||
}); | ||
|
||
app.proto.passwordChanged = function(data) { | ||
app.model.set('_page.passwordChanged', true); | ||
} | ||
|
||
app.proto.recoveryEmailSent = function(data) { | ||
alert('Recovery email is sent to ' + data.email); | ||
} |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,3 @@ | ||
<index:> | ||
<p>Letter was sent to your email address</p> | ||
<p>To finish registration follow the link in letter</p> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,15 @@ | ||
<import: src='./confirmregistration'> | ||
<import: src='./login'> | ||
<import: src='./recoverpassword'> | ||
|
||
<Title:> | ||
{{_page.title}} | ||
|
||
<Body:> | ||
<view name="header"/> | ||
<view name="{{$render.ns}}"/> | ||
|
||
<header:> | ||
<h1>Login app</h1> | ||
<p>{{if _session.loggedIn}}loggedIn{{else}}notLoggedIn{{/}}</p> | ||
<br> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
<index:> | ||
<div class='row'> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
<view name='auth:login' /> | ||
<br> | ||
<p>Forgot password?</p> | ||
<view name='auth:recoverpassword' on-success='recoveryEmailSent()' /> | ||
</div> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
<view name='auth:register' /> | ||
</div> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
<p>Login or Register with providers:</p> | ||
<p><a href='/auth/github'>Github</a></p> | ||
<p><a href='/auth/google'>Google</a></p> | ||
<p><a href='/auth/twitter'>Twitter</a></p> | ||
<p><a href='/auth/facebook'>Facebook</a></p> | ||
<p><a href='/auth/vkontakte'>Vkontakte</a></p> | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<index:> | ||
<div class='row'> | ||
<div class='col-sm-2 col-sm-offset-1'> | ||
{{if _page.passwordChanged}} | ||
<p>Password is changed, <a href='/login'>Go to login page</a></p> | ||
{{else}} | ||
<view name='auth:resetpassword' secret='{{_page.secret}}' on-success='passwordChanged()' /> | ||
{{/}} | ||
</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,12 @@ | ||
var bcrypt = require('bcrypt'); | ||
|
||
module.exports = function(costFactor) { | ||
return { | ||
compare: function(password, hash, salt, done) { | ||
bcrypt.compare(password, hash, done); | ||
}, | ||
hash: function(password, done) { | ||
bcrypt.hash(password, costFactor, done); | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,7 @@ | ||
{ | ||
"NODE_ENV": "development", | ||
"PORT": 3000, | ||
"MONGO_URL": "mongodb://localhost:27017/derby-login-example", | ||
"SESSION_SECRET": "0f83db8c6b9ecc8e761eb16080ebf734ceb73d80", | ||
"SESSION_COOKIE": "b5355e697ac2e2833e74dc57d9e8e83151662378" | ||
} |
Oops, something went wrong.