登录验证用第三方不能实现时用系统自带的解析方式

转载自http://www.cnblogs.com/ios8/archive/2013/11/11/ios-login-json.html

用户输入用户名和密码,点击登录。。。我们把用户名和密码(用post方式或者get方式,get方式多用于测试看你需要)传给服务器,服务器进行判断,然后返回一个接口给我们(这里服务器返回的json接口,正确就返回一个正确的接口给我们,错误就返回一个错误的接口给我们)。我们拿到接口去解析,判断是否登录成功做相应的操作。

关于json解析,可以网上找找资料先看看,我就只知道[]是数组,{}是字典,iOS有自带的json解析的。

以前一直说接口文档,接口什么,可自己从来都是模糊的,比如说一个类的接口,我就认为是这个类的方法。。可是,我的boss给我的登录接口的文档的时候,我才知道,哦,接口文档原来是这样子的呀。。嘻嘻。。。

  1. [
  2. {
  3. "result": {
  4. "RUrl":   "http://localhost/pad_4078_B7DA_676D3FE52763",
  5. "errMsg": "",
  6. "result": "OK",
  7. "sid": "B67D78_B7DA_676D3FE52763"
  8. }
  9. }
  10. ]
  11. ?   jsondata[0][‘result’].result:
  12. ?   OK,登录成功,打开RUrl
  13. ?   FAIL,登录失败,取:errMsg

(1)

  1. #import <UIKit/UIKit.h>
  2. #import "ByValueUrl.h"
  3. @interface LogInViewController : UIViewController <UITextFieldDelegate>{
  4. UIActivityIndicatorView *activityIndicatorView;
  5. UITextField *userNameTF;//用户名
  6. UITextField *passWordTF;//密码
  7. NSDictionary *resultDic2;
  8. UIView *view1;//等待转圈的view
  9. }
  10. @property (weak, nonatomic) IBOutlet UIButton *loginButton;//登录按钮
  11. @property (strong,nonatomic) NSString *homeURL;//登录成功拿到的url
  12. @end

(2)

  1. - (IBAction)login:(id)sender {
  2. [self initaAtivityIndicatorView];
  3. [activityIndicatorView startAnimating];//开始动画
  4. //    定时器(设置时间为3秒)
  5. //    [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(timerFired:) userInfo:nil repeats:NO];
  6. //加载一个NSURL对象
  7. NSURL *url = [NSURL URLWithString:[NSString stringWithFormat:@"http://192.168.9.1/pb/l?user=%@&pwd=%@",userNameTF.text,passWordTF.text]];//这里的url输入自己的就可以,这里用的get方式,get方式都是明文,用post方式好一点
  8. NSLog(@"userNameTF:%@-",userNameTF.text);
  9. NSLog(@"passWordTF:%@-",passWordTF.text);
  10. NSURLRequest *request = [[NSURLRequest alloc]initWithURL:url];
  11. NSData *data = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; //将请求的url数据放到NSData对象中
  12. NSString *dataStr = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
  13. NSLog(@"str-%@",dataStr);
  14. //IOS5自带解析类NSJSONSerialization从response中解析出数据放到字典中
  15. NSError *error;
  16. NSMutableArray *array = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableLeaves error:&error];
  17. NSDictionary *resultDic1 = [array objectAtIndex:0];
  18. resultDic2 = [resultDic1 objectForKey:@"result"];
  19. NSString *str = [resultDic2 objectForKey:@"result"];
  20. NSLog(@"str -%@",str);
  21. if ([str isEqualToString:@"FAIL"] ) {
  22. NSLog(@"shibai-%@",str);
  23. //    定时器(设置时间为3秒)
  24. [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInFail) userInfo:nil repeats:NO];
  25. }else{
  26. self.homeURL = [resultDic2 objectForKey:@"RUrl"];
  27. NSLog(@"url - %@",self.homeURL);
  28. //    定时器(设置时间为3秒)
  29. [NSTimer scheduledTimerWithTimeInterval:3.0 target:self selector:@selector(logInOK) userInfo:nil repeats:NO];
  30. }
  31. }
  32. //登录失败
  33. -(void)logInFail {
  34. [activityIndicatorView stopAnimating];//结束动画
  35. NSString *msg = [resultDic2 objectForKey:@"errMsg"];
  36. UIAlertView *alert = [[UIAlertView alloc]initWithTitle:@"登录失败" message:msg delegate:self cancelButtonTitle:@"OK" otherButtonTitles: nil nil];
  37. [alert show];
  38. [view1 removeFromSuperview];
  39. }
  40. //登录成功
  41. -(void)logInOK{
  1. 跳转到首页就可以了
    1. [activityIndicatorView stopAnimating];//结束动画
时间: 2024-07-30 10:01:41

登录验证用第三方不能实现时用系统自带的解析方式的相关文章

公众号一键登录授权给第三方平台方的技术流程

总体流程 1.用户进入第三方平台方网站 一般而言,用户需要先进入第三方平台方网站,如www.ABC.com 2.第三方平台方获取预授权码 预授权码是第三方平台方实现授权托管的必备信息 3.发布后修改和覆盖现网 第三方平台方可以在自己的网站首页中放置"微信公众号登录授权"的入口,引导公众号运营者进入第三方平台授权页.网址为https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=xxxx&pre_aut

Asp.net MVC访问母版页中嵌套的iframe页面时,如果session或cookie过期,登录验证超时怎样自动跳转到登录页

一般登录验证的过滤器中,使用验证过滤器的Redirect方法,将请求重定向到指定的URL.但是如果我们要访问的页面是一个嵌套在母版页中的iframe页面时,这种重定向只会对iframe页面凑效,也就是会将iframe也重定向到登录页,这样就有违我们的目的了.所以我就尝试了很多方法来实现让整个页面重定向到登录页的目标,接下里我就来分享一下我的心路历程~~如果想看解决方法,可以直接拉到最后,忽略我的啰啰嗦嗦~~ 首先,我尝试了替换掉Redirect,改用了Write方法,意在将指定字符串写入HTTP

Shiro安全框架入门篇(登录验证实例详解与源码)

一.Shiro框架简单介绍 Apache Shiro是Java的一个安全框架,旨在简化身份验证和授权.Shiro在JavaSE和JavaEE项目中都可以使用.它主要用来处理身份认证,授权,企业会话管理和加密等.Shiro的具体功能点如下: (1)身份认证/登录,验证用户是不是拥有相应的身份: (2)授权,即权限验证,验证某个已认证的用户是否拥有某个权限:即判断用户是否能做事情,常见的如:验证某个用户是否拥有某个角色.或者细粒度的验证某个用户对某个资源是否具有某个权限: (3)会话管理,即用户登录

Java Web Filter登录验证

初做网站需要登录验证,转自 :http://blog.csdn.net/daguanjia11/article/details/48995789 Filter: Filter是服务器端的组件,用来过滤web请求.当发生一个web请求时,web容器会先检查请求的URL是否设置了Filter,如果设置了,则执行该Filter的doFilter方法.所有Filter都实现了javax.servlet.Filter接口,doFilter是定义在该接口中的最重要的方法. 最常见的使用过滤器的例子有:登录访

微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台

原文:微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开发者提供的公众号第三

3月9日(用 DBHelper 工具连接 mysql 数据库 实现登录验证)

一. 用DBHelper 与mysql 连接 实现最简单的登录验证. (1)新建 web project ----->选择src导入 DBHelper 工具包-------->选择web root 下的 index.jsp 制作一个表单(用户名,密码连个提示框以及按钮)-------->用action将这个页面提交到login.jsp进行用户名和密码的正确性验证.具体操作代码如下: 1. index.jsp <body> <form  action="logi

用户登录验证Ajax实例详解

程序的思路主要是:页面加载时调用init判断客户端是否存有网站所需的cookies,如果有的话取相应cookies到服务端验证,通过验证显示成功提示,反之显示登录框,同样如果没有所需cookies也显示登录框直到用户输入正确的用户名和密码.整个过程两次用到了ajax,一次是用户输入用户名和密码点击登录按钮后,另一次是页面加载时的用户名和密码验证,其实两个过程调用的是同一个函数parseLogin,这个函数主要负责与远程(也就是"?action=login")通讯,而"?act

【ADO.NET】2、各种版本的 简单登录验证

一.简单登录验证(防SQL注入) GetString(序号) 返回某一列的值(当用户不记得列名序号时,可使用GetOrdinal()获取到序号)GetInt32(序号) 针对的是 int 字段,返回int字段的值GetOrdinal("列名") 根据列名得到序号 Console.WriteLine("请输入用户名:"); string Uname=Console.ReadLine(); Console.WriteLine("请输入密码:"); s

net的成员资格登录验证总结

asp.net 提供了一套成员资格验证程序. 实际使用的时候使用 System.Web.Security  是所在的命门空间 在 ASP.NET 应用程序中,Membership 类用于验证用户凭据并管理用户设置(如密码和电子邮件地址).Membership 类可以独自使用,或者与 FormsAuthentication 一起使用,以创建一个完整的 Web 应用程序或网站的用户身份验证系统.Login 控件封装了 Membership 类,从而提供一种便捷的用户验证机制. Membership