client/api: move cookies management to API

This commit is contained in:
rr-
2016-04-08 10:01:32 +02:00
parent 51a889e3a8
commit 90d4401024
4 changed files with 38 additions and 44 deletions

View File

@ -1,6 +1,5 @@
'use strict';
const cookies = require('js-cookie');
const page = require('page');
const api = require('../api.js');
const events = require('../events.js');
@ -14,21 +13,6 @@ class AuthController {
this.passwordResetView = new PasswordResetView();
}
login() {
return new Promise((resolve, reject) => {
const auth = cookies.getJSON('auth');
if (auth && auth.user && auth.password) {
api.login(auth.user, auth.password)
.then(resolve)
.catch(errorMessage => {
reject(errorMessage);
});
} else {
resolve();
}
});
}
registerRoutes() {
page(/\/password-reset\/([^:]+):([^:]+)$/,
(ctx, next) => {
@ -44,17 +28,8 @@ class AuthController {
this.loginView.render({
login: (name, password, doRemember) => {
return new Promise((resolve, reject) => {
cookies.remove('auth');
api.login(name, password)
api.login(name, password, doRemember)
.then(() => {
const options = {};
if (doRemember) {
options.expires = 365;
}
cookies.set(
'auth',
{'user': name, 'password': password},
options);
resolve();
page('/');
events.notify(events.Success, 'Logged in');
@ -65,7 +40,6 @@ class AuthController {
logoutRoute() {
api.logout();
cookies.remove('auth');
page('/');
events.notify(events.Success, 'Logged out');
}
@ -75,7 +49,6 @@ class AuthController {
this.passwordResetView.render({
proceed: nameOrEmail => {
api.logout();
cookies.remove('auth');
return new Promise((resolve, reject) => {
api.get('/password-reset/' + nameOrEmail)
.then(() => { resolve(); })
@ -86,17 +59,14 @@ class AuthController {
passwordResetFinishRoute(name, token) {
api.logout();
cookies.remove('auth');
api.post('/password-reset/' + name, {token: token})
.then(response => {
const password = response.password;
api.login(name, password)
api.login(name, password, false)
.then(() => {
cookies.set(
'auth', {'user': name, 'password': password}, {});
page('/');
events.notify(events.Success,
'New password: ' + password);
events.notify(
events.Success, 'New password: ' + password);
}).catch(errorMessage => {
page('/');
events.notify(events.Error, errorMessage);

View File

@ -1,6 +1,5 @@
'use strict';
const cookies = require('js-cookie');
const page = require('page');
const api = require('../api.js');
const events = require('../events.js');
@ -41,14 +40,13 @@ class UsersController {
_register(name, password, email) {
const data = {
'name': name,
'password': password,
'email': email
name: name,
password: password,
email: email
};
return new Promise((resolve, reject) => {
api.post('/users/', data).then(() => {
api.login(name, password).then(() => {
cookies.set('auth', {'user': name, 'password': password});
api.login(name, password, false).then(() => {
resolve();
page('/');
events.notify(events.Success, 'Welcome aboard!');