_TANGTANG

导航

智慧城市的【Auth】登录对象

Auth对象看前端:1、将与Auth对象相关的功能分离出来。所含的内容包括:【个人中心相关信息的显示,注册,登录,忘记密码,修改密码,个人信息修改】。

2从“我的”页面开始,显示使用哪儿的数据,需要获取数据。(服务端拉取or本地存储,如果是本地储存,起仍然是服务端的数据,那么便需要在登录的时候将数据储存起来【setUserInfo(userData】,使用“UserInfo”字段)提取显示数据使用【getUserInfo(callback,errorback)

3、点击“退出登录”,需要清空“UserInfo”,并且刷新页面为未登录状态,使用【logOut()】。

4、点击“注册”,需要发送验证码【sendCode(phone,callback)】,填写完毕后,【signUp(phone,code,pass,callback)】调用接口向后发服务器发起注册,status==200让它自己登录【signIn(phone,pass,callback)】,登录成功后,将返回的数据储存【setUserInfo(userdata)】,注册并登录成功后,自动返回,调用【getUserInfo(callback,errorback)】显示个人信息。

5、点击登录【signIn(phone,pass,callback)】,重复注册后半部分的步骤。

 
6、点击“忘记密码”,首先进入stepOne.html,填写手机号后,发送验证码【sendCode(phone)】,填写完验证码,点击下一步【forgetPassVerify(phone,code,callback,errorback)】验证验证码是否正确,成功后执行callback进入下一步,失败后,执行errorback。第二步中,填入新密码,调用【forgetPassReset(phone,newPass,callback)】,修改成功后,【logOut(),并关闭页面。

7、从账户安全进入的“修改密码”,步骤与上述一致。

8、“个人信息”修改,进入页面,编辑完信息后,【userEdit(userInfo,nickname,avatar,slogan,password,gender,real_name)】更新信息,更新成功后【updateUserInfo(userdata)】

 

 

注:

①callback函数中的内容,主要也看复用性,如果需复用程度大,直接写在对象中,供每个函数调用,如果复用程度低,便使用callback代替,函数在被调用时,如果需要callback,才写入callback。

②callback和errorback的作用,可以分别放在if…else 语句中,在不同的情况下调用。

③在写每一步的时候,都需要考虑该步骤对其他地方是否有影响,进而进行相关的处理。

④在哪些情况下需要sendCode?修改密码的两种情况,注册的情况。

⑤在哪些情况下需要setUserInfo(userData)?在注册成功后登录,单独的登录。

⑥在哪些情况下需要updateUserInfo(userData)?修改了个人资料。

⑦updateUserInfo和setUserInfo中参数:updateUserInfo中的rs是后台返回,没有token信息,在储存的时候需要整理一下,setUserInfo中的,是登录时返回的rs,含有token,直接setData即可。
 
 
auth_operation.js
 

var Auth = {}; $(function() { var myhost = "http://fresh.ieyuan.com:8021/api"; bridge.connectBridge(function() { Auth.SetUserInfo = function(userData) { console.log(userData); userData = JSON.stringify(userData); console.log(userData); bridge.setData("UserInfo", userData); }; /** * 更新用户信息 * @param {Object} userData */ Auth.UpDateUserInfo = function(userData) { if(typeof userData == "string") { userData = JSON.parse(userData); } Auth.GetUserInfo(function(info) { for(var key in info) { if(userData[key]) { info[key] = userData[key]; } } console.log(info); console.log(userData); info = JSON.stringify(info); bridge.setData("UserInfo", info); //修改 bridge.dataUpdated(); }) }; /** * * @param {Object} callback存在用户信息则调用 * @param {Object} errorback不存在用户信息调用 */ Auth.GetUserInfo = function(callback, errorback) { bridge.getData("UserInfo", function(info) { if(Utils.isEmpty(info)) { if(errorback) { errorback("未知登录信息!") }; } else { info = JSON.parse(info); console.log(info); Auth.UserInfo = info; var _id = info.id; if(callback) { callback(info) }; } }); }; Auth.LogOut = function() { console.log("logOut") bridge.setData("UserInfo", null); // bridge.dataUpdated(); }; /** * * @param {Object} phone * @param {Object} code * @param {Object} pass * @param {Object} callback获取成功后执行,并传入用户信息 */ Auth.SignUp = function(phone, code, pass, callback) { if($.trim(code) == "") { bridge.showToast("请填写验证码!"); return; } if($.trim(phone) == "" || $.trim(pass) == "") { bridge.showToast("账号或密码格式错误!"); return; } bridge.rest.post({ url: myhost + "/signup", data: { "phone": phone, "code": code, "password": pass } }, function(res) { if(res.status == 200) { var result; Auth.SignIn(phone,pass, function(res) { console.log(res.data); result=res.data; bridge.dataUpdated(function(data) { bridge.finishActivity(); }); }); if(callback) callback(result); } else { if(res.data.error_code) { bridge.showToast(res.data.msg); } else { bridge.showToast("注册失败!"); } } }) }; /** * * @param {Object} phone * @param {Object} pass * @param {Object} callback登录成功调用,并出入用户信息 */ Auth.SignIn = function(phone, pass, callback) { if(!phone || !pass) { bridge.showToast("请填写完整的信息!"); return; } bridge.rest.get({ url: myhost + "/signin/phone/" + phone + "/password/" + pass }, function(res) { console.log(res); if(res.status == 200) { Auth.UserInfo = res.data; Auth.SetUserInfo(res.data); bridge.showToast("登录成功!"); if(callback) callback(res.data); } else { bridge.showToast(res.data.msg); } }) }; /** * * @param {Object} phone用户电话 * @param {Object} callback发送成功后调用 */ Auth.SendCode = function(phone, callback) { if($.trim(phone) == "") { bridge.showToast("请填写手机号!"); return; } console.log(phone) bridge.rest.get({ url: myhost + "/signin/code/" + phone + "?sms_flag=1215" }, function(res) { alert(res.data.code) if(res.status == 200) { bridge.showToast("发送成功!"); if(callback) callback(res.data.code); } else { if(res.data.error_code) { bridge.showToast(res.data.msg); } else { bridge.showToast("发送验证码失败!"); } } }) }; /** * * @param {Object} phone电话号码 * @param {Object} code需要验证的电话号 * @param {Object} callback */ Auth.ForgetPassVerify = function(phone, code, callback, errorcall) { if($.trim(code) == "") { bridge.showToast("请填写验证码!"); return; } if($.trim(phone) == "") { bridge.showToast("账号格式错误!"); return; } bridge.rest.get({ url: myhost + "/phone/" + phone + "/code/" + code + "/check" }, function(res) { if(res.status == 200) { if(callback) callback(res.data); } else { if(res.data.error_code) { bridge.showToast(res.data.msg); } else { bridge.showToast("验证错误!"); } errorcall ? errorcall() : ""; } }) }; Auth.ForgetPassReset = function(phone, newPass, callback) { if($.trim(newPass) == "") { bridge.showToast("请填写新密码!"); return; } bridge.rest.put({ url: myhost + "/forget-passwd/phone/" + phone, data: { "password": newPass } }, function(res) { if(res.status == 200) { bridge.showToast("重置成功!"); Auth.LogOut(); if(callback) callback(res.data); // var result; // Auth.SignIn(phone,newPass, function(res) { // console.log(res.data); // result=res.data; // bridge.dataUpdated(function(data) { // bridge.finishActivity(); // }); // }); // if(callback) callback(result); } else { if(res.data.error_code) { bridge.showToast(res.data.msg); } else { bridge.showToast("重置密码失败!"); } } }) }; /** * * @param {Object} UID * @param {Object} nickname * @param {Object} avatar * @param {Object} slogan * @param {Object} password * @param {Object} gender * @param {Object} real_name */ Auth.UserEdit = function(UserInfo, nickname, avatar, slogan, password, gender, real_name) { if(Utils.isEmpty(UserInfo)) { bridge.showToast("信息缺失,请重新登录!"); return; } bridge.showProgressDialog("正在修改"); console.log(UserInfo.id); console.log(UserInfo.token) console.log(avatar); bridge.rest.put({ url: myhost + "/user/" + UserInfo.id, headers: { "token": UserInfo.token }, data: { "nickname": nickname ? nickname : "", "avatar": avatar ? avatar : "", "gender": gender ? gender : "", "slogan": slogan ? slogan : "", "password": password ? password : "", "real_name": real_name ? real_name : "" } }, function(res) { console.log(res) // res = JSON.parse(res); if(res.status == 200) { Auth.UpDateUserInfo(res.data); bridge.showSuccessMsg("修改成功!"); console.log("修改成功!"); $(".save_changes").addClass("locked"); // bridge.showToast("修改成功!"); } else { if(res.data.error_code) { bridge.showToast(res.data.msg); } else { bridge.showToast("修改失败!"); } } }) }; }) })

 

 

posted on 2016-09-05 14:40  _TANGTANG  阅读(301)  评论(0编辑  收藏  举报