From 874eb834d4dd8a8d1359527a5d3f0dec94734289 Mon Sep 17 00:00:00 2001 From: alexeiberkov Date: Tue, 16 Feb 2016 10:27:08 +0300 Subject: [PATCH] I have added "Remember me" checkbox to the login form. --- src/actions/LoginActions.js | 10 +++++++--- src/components/Login.jsx | 15 +++++++++++++-- src/services/AuthService.js | 8 ++++---- 3 files changed, 24 insertions(+), 9 deletions(-) diff --git a/src/actions/LoginActions.js b/src/actions/LoginActions.js index 80c6fac..183b43a 100644 --- a/src/actions/LoginActions.js +++ b/src/actions/LoginActions.js @@ -3,9 +3,10 @@ import {LOGIN_USER, LOGOUT_USER} from '../constants/LoginConstants.js'; import RouterContainer from '../services/RouterContainer' export default { - loginUser: (jwt) => { + loginUser: (jwt, rememberMe) => { var savedJwt = localStorage.getItem('jwt'); - + rememberMe = rememberMe || false; + AppDispatcher.dispatch({ actionType: LOGIN_USER, jwt: jwt @@ -15,7 +16,10 @@ export default { var nextPath = RouterContainer.get().getCurrentQuery().nextPath || '/'; RouterContainer.get().transitionTo(nextPath); - localStorage.setItem('jwt', jwt); + + if(rememberMe) { + localStorage.setItem('jwt', jwt); + } } }, logoutUser: () => { diff --git a/src/components/Login.jsx b/src/components/Login.jsx index 4845409..05f1531 100644 --- a/src/components/Login.jsx +++ b/src/components/Login.jsx @@ -8,13 +8,14 @@ export default class Login extends React.Component { super() this.state = { user: '', - password: '' + password: '', + rememberMe: false }; } login(e) { e.preventDefault(); - Auth.login(this.state.user, this.state.password) + Auth.login(this.state.user, this.state.password, this.state.rememberMe) .catch(function(err) { alert("There's an error logging in"); console.log("Error logging in", err); @@ -34,11 +35,21 @@ export default class Login extends React.Component { +
+ + +
); } + + toggleRememberMe() { + this.setState({ + rememberMe: !this.state.rememberMe + }); + } } ReactMixin(Login.prototype, React.addons.LinkedStateMixin); diff --git a/src/services/AuthService.js b/src/services/AuthService.js index c3b9fb0..98347b7 100644 --- a/src/services/AuthService.js +++ b/src/services/AuthService.js @@ -5,7 +5,7 @@ import LoginActions from '../actions/LoginActions'; class AuthService { - login(username, password) { + login(username, password, rememberMe) { return this.handleAuth(when(request({ url: LOGIN_URL, method: 'POST', @@ -14,7 +14,7 @@ class AuthService { data: { username, password } - }))); + })), rememberMe); } logout() { @@ -33,11 +33,11 @@ class AuthService { }))); } - handleAuth(loginPromise) { + handleAuth(loginPromise, rememberMe) { return loginPromise .then(function(response) { var jwt = response.id_token; - LoginActions.loginUser(jwt); + LoginActions.loginUser(jwt, rememberMe); return true; }); }