shark-node-openid
Version:
shark-node-openid is used for netease's openid.
184 lines (167 loc) • 5.24 kB
JavaScript
var DBAccess = require('../db/DbAccess');
var orm = require('orm');
var q = require('q');
var OpenIdLoginUser = null;
var OpenIdLoginUserModel = require('../model/OpenIdLoginUserModel');
function define(db){
OpenIdLoginUser = db.define("OpenIdLoginUser", {
user_email : {type: 'text', size:64},
expires_time : {type: "integer", size: 8},
full_name: {type: "text", size:64},
nick_name: {type: "text", size: 64}
});
return OpenIdLoginUser;
}
/**
* @author: stone-jin
* @description: 判断是否这个openid的过期
* @date: 2016/11/9
*/
function UserExipreTime(email){
var defer = q.defer();
do{
/* 入参判断 */
if(email === void 0 || email === "" || !((typeof email === 'string') && email.constructor === String)){
defer.reject({
"code": 203
});
break;
}
/* 此处需要判断过期时间 */
OpenIdLoginUser.find({ user_email: email }, function (err, user) {
if(err || user.length !== 1){ /* 没有找到 */
defer.reject({
"code": 201
});
}else{
if(user[0].expires_time > Date.parse(new Date())){
defer.resolve({
'code': 200
});
}else{
/* 已经过期 */
defer.reject({
'code': 202
});
}
}
});
}while(0);
return defer.promise;
}
/**
* @author: stone-jin
* @description: 保存OpenId用户信息
* param: OpenIdLoginUserModel : userInfo
* @date: 2016/11/9
*/
function addOpenIdUser(userInfo){
var defer = q.defer();
do{
/* 入参判断 */
if(userInfo === void 0 || userInfo.constructor !== OpenIdLoginUserModel){
defer.reject({
"code": 202
});
break;
}
/* 保存新的数据到数据库中,可以在下次登陆的时候判断是否过期需要重新登陆 */
OpenIdLoginUser.create(userInfo.toJSON(), function(err, results) {
if(err){
/* 保存数据库失败 */
defer.reject({
"code": 201
});
}else{
/* 保存成功 */
defer.resolve({
"code": 200
});
}
});
}while(0);
return defer.promise;
}
/**
* @author: stone-jin
* @description: 更新Openid用户信息,判断条件是user_email
* @date: 2016/11/9
*/
function updateOpenIdUser(userInfo){
var defer = q.defer();
do{
if(userInfo === void 0 || userInfo.constructor !== OpenIdLoginUserModel){
defer.reject({
"code": 203
});
break;
}
/* 保存新的数据到数据库中,可以在下次登陆的时候判断是否过期需要重新登陆 */
OpenIdLoginUser.find({"user_email" : userInfo.getUserEmail()}, function(err, user) {
if(err || user.length !== 1){
/* 保存数据库失败 */
defer.reject({
"code": 201
});
}else{
user[0].expires_time = userInfo.getExpiresTime();
user[0].save(function(error){
if(error){
defer.reject({
"code": 202
});
}
/* 保存成功 */
defer.resolve({
"code": 200
});
});
}
});
}while(0);
return defer.promise;
}
function getUserInfo(email){
var defer = q.defer();
do{
/* 入参判断 */
if(email === void 0 || email === "" || !((typeof email === 'string') && email.constructor === String)){
defer.reject({
"code": 203
});
break;
}
/* 此处需要判断过期时间 */
OpenIdLoginUser.find({ user_email: email }, function (err, user) {
if(err || user.length !== 1){ /* 没有找到 */
defer.reject({
code: 201
});
}else{
if(user[0].expires_time > Date.parse(new Date())){
defer.resolve({
code: 200,
data: {
user_email: user[0].user_email,
full_name: user[0].full_name,
nick_name: user[0].nick_name
}
});
}else{
/* 已经过期 */
defer.reject({
'code': 202
});
}
}
});
}while(0);
return defer.promise;
}
module.exports = {
define: define,
UserExipreTime: UserExipreTime,
addOpenIdUser: addOpenIdUser,
updateOpenIdUser: updateOpenIdUser,
getUserInfo: getUserInfo
};