Securing Routes: Solution
-
In notebook:
-
Building Modern Web Apps
-
Created at:
-
2016-02-02
-
Updated:
-
2016-02-02
-
Tags:
-
libraries JavaScript React
// **** router.js ****
import ...
// ++++ 1. add the requiresAuth function
function requiresAuth(handlerName) {
// need to create a closure
// to be able to refernce 'this'
return function () {
if(app.me.token) {
this[handlername].apply(this, arguments)
} else {
this.redirectTo('/')
}
}
}
export default Router.extend({
renderPage (page, opts = {layout:true}) { ... }
routes: {
'': 'public',
'repos': requiresAuth('repos'),
'login': 'login',
'logout': 'logout',
'auth/callback?:query': requiresAuth('authCallback'),
'repo/:owner/:name': 'repoDetail'
},
public () { ... },
repos () { ... },
repoDetail (owner, name) { ... }
login () { ... },
authCallback (query) { ... },
logout () { ... }
})
Recommends the book: "Javascript allongé"