整理了一下登陆接口

This commit is contained in:
luchenqun 2016-10-31 22:56:20 +08:00
parent 139c985ce2
commit bb54981f81
10 changed files with 157 additions and 14 deletions

11
app.js
View File

@ -23,10 +23,17 @@ app.use(bodyParser.json());
app.use(bodyParser.urlencoded({
extended: false
}));
app.use(cookieParser('Wilson'));
app.use(cookieParser());
app.use(session({
secret: 'wilson'
resave: false, //添加这行
saveUninitialized: true, //添加这行
secret: 'ILoveYiJia', // 建议使用 128 个字符的随机字符串
cookie: {
maxAge: 60 * 1000
}
}));
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);

View File

@ -33,6 +33,7 @@
<script src="/scripts/directives/menus-directive.js"></script>
<script src="/scripts/controllers/bookmarks-controller.js"></script>
<script src="/scripts/controllers/home-controller.js"></script>
<script src="/scripts/controllers/login-controller.js"></script>
<script src="/scripts/controllers/tags-controller.js"></script>
<script src="/scripts/controllers/menus-controller.js"></script>
<script src="/scripts/controllers/edit-controller.js"></script>

View File

@ -10,7 +10,8 @@ app.config(function($stateProvider, $urlRouterProvider) {
templateUrl: '/views/bookmarks.html',
params: {
foo: null,
bar: null
bar: null,
showStyle: 'table',
},
controller: 'bookmarksCtr'
})
@ -33,7 +34,13 @@ app.config(function($stateProvider, $urlRouterProvider) {
})
.state('login', {
url: '/login',
templateUrl: '/views/login.html'
templateUrl: '/views/login.html',
params: {
foo: null,
bar: null,
showStyle: 'table',
},
controller: 'loginCtr'
})
.state('/', {
url: '/',

View File

@ -1,7 +1,8 @@
app.controller('homeCtr', ['$scope', '$stateParams', '$filter', '$window', 'bookmarkService', 'pubSubService', function($scope, $stateParams, $filter, $window, bookmarkService, pubSubService) {
console.log('Hello homeCtr......');
var params = {
a: 1111
userName: 'luchenqun',
pwd: '123456',
};
bookmarkService.autoLogin(params).then(
function(data) {

View File

@ -0,0 +1,29 @@
app.controller('loginCtr', ['$scope', '$filter', '$state', 'bookmarkService', 'pubSubService', function($scope, $filter, $state, bookmarkService, pubSubService) {
console.log("Hello loginCtr...");
login({
userName: 'luchenqun',
pwd: '123456',
});
function login(params) {
bookmarkService.login(params).then(
function(data) {
console.log(data);
if (data.logined) {
pubSubService.publish('loginCtr.login', {
'login': data.logined,
});
$state.go('bookmarks', {
showStyle: 'navigate',
})
} else {
console.log('login failed......................')
}
},
function(errorMsg) {
console.log(errorMsg);
}
);
}
}]);

View File

@ -1,5 +1,5 @@
app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope, $state, pubSubService) {
$scope.login = false; /**< 是否登陆 */
app.controller('menuCtr', ['$scope', '$stateParams', '$state', 'pubSubService', 'bookmarkService', function($scope, $stateParams, $state, pubSubService, bookmarkService) {
$scope.login = $stateParams.login && false; /**< 是否登陆 */
$scope.selectLoginIndex = 0; /**< 默认登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.selectNotLoginIndex = 0; /**< 默认未登陆之后的选择的菜单索引,下表从 0 开始 */
$scope.keyword = ''; /**< 搜索关键字 */
@ -17,6 +17,11 @@ app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope,
// }, 0);
// }
pubSubService.subscribe('loginCtr.login', $scope, function(event, params) {
$scope.login = params.login;
});
// 登陆之后显示的菜单数据。uiSerf内部跳转链接。
$scope.loginMenus = [{
uiSref: 'bookmarks',
@ -70,6 +75,24 @@ app.controller('menuCtr', ['$scope', '$state', 'pubSubService', function($scope,
'action': 'add'
});
}
$scope.logout = function() {
var params = {
userName: 'luchenqun'
};
bookmarkService.logout(params).then(
function(data) {
console.log('logout..........', data)
$scope.login = false;
$state.go('login', {
foo: 'i love you',
bar: 'hello world'
})
},
function(errorMsg) {
console.log(errorMsg);
}
);
}
function semanticInit() {
setTimeout(() => {

View File

@ -1,6 +1,34 @@
app.factory('bookmarkService', ['$http', '$q', function($http, $q) {
// service interface
var service = {
login: function(params) {
var def = $q.defer();
$http.post('/api/login/', {
params: params
})
.success(function(data) {
def.resolve(data);
})
.error(function(data) {
console.log('Error: ' + data);
def.reject('Failed to get todos');
});
return def.promise;
},
logout: function(params) {
var def = $q.defer();
$http.post('/api/logout/', {
params: params
})
.success(function(data) {
def.resolve(data);
})
.error(function(data) {
console.log('Error: ' + data);
def.reject('Failed to get todos');
});
return def.promise;
},
autoLogin: function(params) {
var def = $q.defer();
$http.get('/api/autoLogin/', {

View File

@ -1 +1,3 @@
<p> 这是书签的介绍 </p>
<p>
这是书签的介绍
</p>

View File

@ -48,11 +48,11 @@
<div class="ui button" ng-click="showAddBookmarkMoadl()" ui-sref="bookmarks">添加书签</div>
</div>
<div class="item">
<div class="ui button">退出</div>
<div class="ui button" ng-click="logout()">退出</div>
</div>
</div>
</div>
<div class="ui small menu js-not-login-in" ng-if="!login">
<a class="item" ng-class="{active:$index==selectNotLoginIndex}" ui-sref="{{ menu.uiSref}}" ng-click="selectMenu($index, login)" ng-repeat="menu in notLoginMenus">{{ menu.title}}</a>
<a class="item" ng-class="{active:$index==selectNotLoginIndex}" ui-sref="{{ menu.uiSref}}" ui-sref-opts="{reload: true}" ng-click="selectMenu($index, login)" ng-repeat="menu in notLoginMenus">{{ menu.title}}</a>
</div>
</div>

View File

@ -18,11 +18,56 @@ var client = mysql.createConnection({
});
client.connect();
api.get('/autoLogin', function(req, res) {
console.log('autoLogin......');
res.json({
data: "autoLogin reply",
api.post('/logout', function(req, res) {
var params = req.body.params;
console.log('logout......', params);
var userName = params.userName;
req.session.destroy(function(err) {
});
res.json({
data: "logout success",
});
});
api.post('/login', function(req, res) {
var params = req.body.params;
console.log('login......', params);
var userName = params.userName;
var pwd = params.pwd;
var logined = Math.random() > 0.5;
if (logined) {
res.cookie('isLogin', userName, {
maxAge: 60000
});
req.session.userName = userName;
console.log(req.session.userName);
} else {
}
res.json({
logined: logined,
});
});
api.get('/autoLogin', function(req, res) {
console.log('autoLogin......', req.body.params);
// if (req.cookies.isLogin) {
// console.log('cookies:' + req.cookies.isLogin);
// req.session.userName = req.cookies.isLogin;
// }
if (req.session.userName) {
console.log('session:' + req.session.userName);
res.json({
data: "you have auto login",
});
} else {
res.json({
data: "Please Login",
});
}
});
api.get('/bookmarks', function(req, res) {