Windows Azure Mobiles Services实现客户端的登录注册
来源:互联网 发布:apache高并发解决方案 编辑:程序博客网 时间:2024/05/21 19:48
下文只是简单实现,客户端以Android端的实现为例:
用户表Account:
package com.microsoft.ecodrive.model;public class Account {@com.google.gson.annotations.SerializedName("id")public String id;@com.google.gson.annotations.SerializedName("username")public String username;@com.google.gson.annotations.SerializedName("password")public String password;@Overridepublic boolean equals(Object o) {return o instanceof Account && ((Account) o).id == id;}}
一、登录
1、服务端新建api:login,将其script替换如下:
exports.post = function(request, response) { // Use "request.service" to access features of your mobile service, e.g.: // var tables = request.service.tables; // var push = request.service.push; response.send(statusCodes.OK, { message : "post" });};exports.get = function(request, response) { var myTable = request.service.tables.getTable('Account'); myTable.where({ username: request.param('username'), password:request.param('password') }).read({ success: checkPermissions }); function checkPermissions(results) { if (results.length <= 0) { response.send(statusCodes.BAD_REQUEST, 'No such user.'); } else { response.send(statusCodes.OK, { message : 'sucess.' }); } }};
2、客户端登录代码如下:
private void login(final String name,final String pwd) {List<Pair<String, String>> parameters = new ArrayList<Pair<String, String>>();parameters.add(new Pair<String, String>("username", name));parameters.add(new Pair<String, String>("password", pwd));mClient.invokeApi("login","get", parameters, APIResult.class, new ApiOperationCallback<APIResult>() { @Override public void onCompleted(APIResult result, Exception exception, ServiceFilterResponse response) { int code = response.getStatus().getStatusCode();Log.i(TAG, "StatusCode:"+code);if (exception == null) {showToast("Login sucess!");} else if (code==400) {showToast("Username or password is wrong, please try again.");}else{showToast(exception.getMessage());} } });}注:由于是从项目中摘出来的,一些方法需要自己去初始化。
二、注册
方法一:api方式
1、服务端新建api:register,将其script替换如下:
exports.post = function(request, response) { var myTable = request.service.tables.getTable('Account'); myTable.where({ username: request.param('username') }).read({ success: checkPermissions }); function checkPermissions(results) { if (results.length <= 0) { var toInsert ={username:request.param('username'),password:request.param('password')}; myTable.insert(toInsert, { success: function () { response.send(statusCodes.OK, { message : 'Register sucess!'}); } }); } else { console.log('User %s Already exist.', request.param('username')); response.send(statusCodes.BAD_REQUEST, 'Already exist.'); } }};exports.get = function(request, response) { response.send(statusCodes.OK, { message : 'Hello World!' });};
2、客户端代码如下:
//use apiprivate void register1(final String name,final String pwd) {List<Pair<String, String>> parameters = new ArrayList<Pair<String, String>>();parameters.add(new Pair<String, String>("username", name));parameters.add(new Pair<String, String>("password", pwd));mClient.invokeApi("register","post", parameters, APIResult.class, new ApiOperationCallback<APIResult>() { @Override public void onCompleted(APIResult result, Exception exception, ServiceFilterResponse response) { int code = response.getStatus().getStatusCode();Log.i(TAG, "StatusCode:"+code);if (exception == null) {//SucessshowToast(result.message);} else if (code==400) {showToast(response.getContent());}else{showToast(exception.getMessage());} } });}
方法二:修改Accout表的insert的script。
1、替换Accout表的insert的script如下:
function insert(item, user, request) { var permissionsTable = tables.getTable('Account'); permissionsTable.where({ username: item.username }).read({ success: checkPermissions }); function checkPermissions(results) { if (results.length <= 0) { request.execute(); } else { console.log('User %s Already exist.', item.username); request.respond(statusCodes.BAD_REQUEST, 'User already exist'); } }}
2、客户端代码如下:
//use insertprivate void register(final String name,final String pwd) {Account account = new Account();account.username = name;account.password = pwd;mAccountTable.insert(account,new TableOperationCallback<Account>() {@Overridepublic void onCompleted(Account result, Exception exception,ServiceFilterResponse response) {int code = response.getStatus().getStatusCode();Log.i(TAG, "StatusCode:"+code);if (exception == null) {//SucessshowToast("Register sucess!");} else if (code==400) {showToast(response.getContent().replace("\"", ""));}else{showToast(exception.getMessage());}}});}
另,APIResult类如下:
package com.microsoft.ecodrive.model;import com.google.gson.annotations.SerializedName;public class APIResult {@SerializedName("count") public int mCount; public int getCount() {return mCount;}public String message;}
1 0
- Windows Azure Mobiles Services实现客户端的登录注册
- 客户端的登录注册
- 公布Windows Azure Media Services
- LINK - Windows Azure Mobile Services
- Windows 注册 Services 服务的方法
- XMPP iOS客户端实现三:登录、注册
- Javaweb 登录注册的实现
- Android客户端实现注册/登录详解(一)
- Android客户端实现注册/登录详解(二)
- SVN客户端界面完工+与服务器交互注册登录实现
- Android客户端实现注册/登录详解(二)
- Android客户端实现注册/登录详解(一)
- Android客户端实现注册/登录详解(二)
- 现实世界的Windows Azure:采访Tata Consultancy Services的业务发展经理,Sebastian Iglesias先生
- 微软推出移动端的云服务Windows Azure Mobile Services
- CS模式下的客户端的注册登录查询
- Android客户端登录注册模块
- 基于tigase服务器的安卓客户端开发---注册登录
- EBS Multi Org 基础
- zoj 1028
- android得到系统时间如何判断是白天还是晚上
- android开发中如何查看当前eclipse 是否已经安装ADT以及这个ADT的版本
- LeetCode007:WordLadder
- Windows Azure Mobiles Services实现客户端的登录注册
- ODBC连接数据库
- Binary Tree Traversals
- UVa-Getting Started
- 韩顺平PHP学习视频笔记整理006浮动窗口 表单及表单控件①
- Hibernate查询方式汇总
- Spring事务传播性与隔离级别
- 天才吧是什么???
- 15分钟学会MyEclipse导出jar文件再装换成exe可执行文件