ios开发使用Basic Auth 认证方式

我们app的开发通常有2种认证方式   一种是Basic Auth,一种是OAuth;现在普遍还是使用OAuth的多,而使用Basic Auth认证的少,正好呢我今天给大家介绍的就是使用的比较少的Badic Auth认证方式,这种认证方式开发和调试简单, 没有复杂的页面跳转逻辑和交互过程,更利于发起方控制。然而缺点就是安全性更低,不过也没事,我们可以使用https安全加密协议,这样才更安全。

我使用的是AFNetworking发送的网络请求,因此我们用Basic Auth认证方式就不能再使用AFN的默认的GET或者POST请求,而是自己定义的NSMutableRequest请求,使用AFN发送,如下面代码:

[objc] view plain copy

  1. //http的get请求地址
  2. NSString *urlStr=[NSString stringWithFormat:@"https://192.168.1.157:8443/v1/sms/send/%@",self.username.text];
  3. NSURL *url = [NSURL URLWithString:urlStr];
  4. //自定义的request
  5. NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
  6. //请求过期时间
  7. request.timeoutInterval = 10;
  8. //get请求
  9. request.HTTPMethod = @"GET";
  10. //配置用户名 密码
  11. NSString * str = [NSString stringWithFormat:@"%@:%@",@"lairen.com",@"sdclean.com"];
  12. //进行加密  [str base64EncodedString]使用开源Base64.h分类文件加密
  13. NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];
  14. [request setValue:str2 forHTTPHeaderField:@"Authorization"];
  15. AFHTTPRequestOperation *op=[[AFHTTPRequestOperation alloc]initWithRequest:request];
  16. //设置返回数据为json数据
  17. op.responseSerializer= [AFJSONResponseSerializer serializer];
  18. //发送网络请求
  19. [op setCompletionBlockWithSuccess:^(AFHTTPRequestOperation *operation, id responseObject) {
  20. NSLog(@"%@",responseObject);
  21. } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
  22. NSLog(@"%@",error);
  23. }];
  24. //请求完毕回到主线程
  25. [[NSOperationQueue mainQueue] addOperation:op];

使用Basic Auth认证方式,AFN发送网络请求就是上述代码的格式,其中代码的一些难懂的点,我在下图做了注释;

我注释的第一个是用户名,第二个是密码,这个使我们Basic Auth认证方式必须设置的请求头,然后第三个呢是我们为了我确保安全把用户名和密码的字符串进行了Base64加密,使用的2个文件是开源的Base64.h  Base64.m 。github上面就可以下载。

上述代码中的这行是对字符串进行的加密,记住是使用的Base64.h分类方法进行的加密,一定要先导入Base64.h文件才可以这样加密。

[objc] view plain copy

  1. [str base64EncodedString]

[objc] view plain copy

  1. NSString * str2 = [NSString stringWithFormat:@"Basic %@",[str base64EncodedString]];

到这里我们的Basic Auth认证方式就讲完了,怎么样,很简单吧。

时间: 2024-10-29 02:01:33

ios开发使用Basic Auth 认证方式的相关文章

java 发送带Basic Auth认证的http post请求

构造http header private static final String URL = "url"; private static final String APP_KEY = "key"; private static final String SECRET_KEY = "secret"; /** * 构造Basic Auth认证头信息 * * @return */ private String getHeader() { String

iOS开发项目篇—10对齐方式

iOS开发项目篇—10对齐方式 一.关于四个容易混淆属性的对比说明 1. textAligment : 文字的水平方向的对齐方式 (1) 取值 NSTextAlignmentLeft      = 0,    // 左对齐 NSTextAlignmentCenter    = 1,    // 居中对齐 NSTextAlignmentRight    = 2,    // 右对齐 (2) 哪些控件有这个属性 : 一般能够显示文字的控件都有这个属性 * UITextField * UILabel

iOS开发-UITextView实现PlaceHolder的方式

之前开发遇到过UITextField中加入一个PlaceHolder的问题,直接设置一下即可,不过这次是需要在UITextView中实现一个PlaceHolder,跟之前有点不同.在网上参考了各位前辈的解决方案,大概有两种方式,第一种方式很猥琐,就是直接给UITextView的text赋值,比如说默认提示是"博客园FlyElephant",在textViewDidChange中判断是不是“博客园FlyElephant”,如果是就清空,如果不是就继续提示,弊端就是用户输入的内容不能和你的

python+requests——http basic auth认证

import requests from requests.auth import HTTPBasicAuth url = 'https://api.github.com/uesr' resp = requests.get(url,auth=HTTPBasicAuth('user','password')) #------------------------------------------------------------------------ import requests url =

httpclient进行basic auth认证

private HttpClientContext context = HttpClientContext.create(); public void addUserOAuth(String username,String password){ CredentialsProvider credsProvider = new BasicCredentialsProvider(); org.apache.http.auth.Credentials credentials = new org.apac

【iOS开发-79】利用Modal方式实现控制器之间的跳转

利用Modal方法.事实上就是以下两个方法的运用. Modal方式的切换效果是从底部呈现. -(void)clickModal{ WPViewController *wp=[[WPViewController alloc]init]; [self presentViewController:wp animated:YES completion:^{ }]; } -(void)clickDismiss{ [self dismissViewControllerAnimated:YES complet

iOS开发中数据的存储方式

1.plist属性列表 >1.适用对象:仅仅是Foundation框架中自带的一些类,比如:NSString/NSArray/NSDicionary/NSSet/NSNumber/NSData >2.调用对象的writeToFileXXX方法就可以写入文件 >3.调用对象的XXXWithcontensOfFile方法就可以从文件中读取对象内容 2.偏好设置 >1.本质还是plist属性列表的方法进行存储 >2.存取非常简单  (不用关心文件夹和文件名) >3.只能存储一

文顶顶iOS开发博客链接整理及部分项目源代码下载

文顶顶iOS开发博客链接整理及部分项目源代码下载 网上的iOS开发的教程很多,但是像cnblogs博主文顶顶的博客这样内容图文并茂,代码齐全,示例经典,原理也有阐述,覆盖面宽广,自成系统的系列教程却很难找.如果你是初学者,在学习了斯坦福iOS7公开课和跟着文顶顶的博客做项目之后,最快只需要2个月时间,就基本可以独立完成iOS App的开发工作.有经验的开发者也可以在该博客中寻找代码片段进行学习借鉴,必有所收获. 在此也向@文顶顶 表示严重感谢! 由于文顶顶博客博文繁多,每次找文章需要频繁的翻页,

iOS开发系列--数据存取

概览 在iOS开发中数据存储的方式可以归纳为两类:一类是存储为文件,另一类是存储到数据库.例如前面IOS开发系列—Objective-C之Foundation框架的文章中提到归档.plist文件存储,包括偏好设置其本质都是存储为文件,只是说归档或者plist文件存储可以选择保存到沙盒中,而偏好设置系统已经规定只能保存到沙盒的Library/Preferences目录.当然,文件存储并不作为本文的重点内容.本文重点还是说数据库存储,做过数据库开发的朋友应该知道,可以通过SQL直接访问数据库,也可以