小编Kev*_*ott的帖子

扩展restful_authentication/AuthLogic以支持匿名iPhone的懒惰登录的最佳方法是什么?

我正在构建一个与Ruby on Rails后端对话的iPhone应用程序.Ruby on Rails应用程序还将为Web用户提供服务.restful_authentication插件是提供快速和可自定义的用户身份验证的绝佳方式.但是,我希望iPhone应用程序的用户拥有一个帐户,该帐户由存储在新列中的电话的唯一标识符([[UIDevice device] uniqueIdentifier])自动创建.之后,当用户准备创建用户名/密码时,帐户将更新为包含用户名和密码,保留iPhone唯一标识符.用户在设置用户名/密码之前不应该访问该网站.但是,他们可以使用iPhone应用程序,因为应用程序可以使用它的标识符对自身进行身份验证.

修改restful_authentication以执行此操作的最佳方法是什么?创建一个插件?或者修改生成的代码?

那么替代框架呢,比如AuthLogic.允许iPhone将生成的身份验证令牌锁定到其UUID的最佳方法是什么,但是让用户稍后创建用户名/密码?

ruby iphone ruby-on-rails restful-authentication

8
推荐指数
1
解决办法
1816
查看次数

如何使用iPhone SDK实现像Photo应用程序的可滑动图像堆栈?

我想使用iPhone SDK,使用一堆图像(或者可能是一组URL来下载图像)并使用用户滑动一次一个地全屏显示它们,以便平滑地为堆栈中的下一个图像设置动画.Apple的Photo.app似乎是这样做的.此外,如果尚未检索到图像,我想显示进度指示器.

你能指点我的示例代码并解释如何实现这种技术吗?

iphone objective-c

7
推荐指数
1
解决办法
1万
查看次数

移动和Web用户的身份验证/授权架构

这对我来说似乎是一个反复出现的问题,因为我似乎在过去几年里都倾向于移动应用程序.除了网络用户,我还要对移动用户进行身份验证和授权.我需要使其足够无缝,以便用户可以轻松拥有一个Web帐户,而不会中断他们的数据.我希望解决方案在主题中是架构,而不是特定于任何语言/框架.

要求/假设

  1. 移动用户必须能够在没有登录的情况下使用本机应用程序,包括提供内容(标记收藏夹,上传照片等).
  2. 即使没有指定帐户凭据,移动用户也应该安全且唯一地对Web服务进行身份验证.
  3. 移动用户可能拥有多个设备,这些设备彼此之间并不知情.
  4. 移动用户应该能够注册/登录,这应该将任何内容卷入帐户的所有权.随后登录的每个帐户都应该发生"同步".
  5. 是否在移动设备或网络上创建帐户无关紧要.

考虑的架构

  1. 没有衬衫,没有鞋子,没有登录=没有贡献.要求登录以提供任何类型的内容.这可以防止需要将设备帐户与主帐户"同步".只需要一个用户名/密码+令牌即可登录设备.服务器对象:用户,角色
  2. 多设备自我认证.服务器与设备协商并交付设备存储的凭据.在注册/登录发生之前,每个设备都会自我验证并与匿名帐户关联.如果发生注册,匿名帐户将转换为已知帐户.如果发生登录,则匿名帐户中的内容将移至已知帐户,然后被丢弃.丢失自我身份验证详细信息的设备将获得新的身份验证详细信息,之前的匿名帐户将被放弃(然后希望稍后被丢弃)并且无法恢复,因为它从未转换为已知帐户.服务器对象:用户,角色,设备

您认为什么是好的解决方案?其中之一,还是其他什么?

architecture authentication mobile authorization web-services

7
推荐指数
1
解决办法
3530
查看次数

提取电话号码和重新格式化的更好方法?

各种格式的电话号码数据(我之所以选择这些,是因为进来的数据不可靠而且不是预期的格式):

+1 480-874-4666
404-581-4000
(805) 682-4726
978-851-7321, Ext 2606
413- 658-1100
(513) 287-7000,Toll Free (800) 733-2077
1 (813) 274-8130
212-363-3200,Media Relations: 212-668-2251.
323/221-2164
Run Code Online (Sandbox Code Playgroud)

我的Ruby代码提取所有数字,删除美国国家代码的任何前导1,然后使用前10位数字以所需格式创建"新"电话号码:

  nums = phone_number_string.scan(/[0-9]+/)
  if nums.size > 0
    all_nums = nums.join
    all_nums = all_nums[0..0] == "1" ? all_nums[1..-1] : all_nums
    if all_nums.size >= 10
      ten_nums = all_nums[0..9]
      final_phone = "#{ten_nums[0..2]}-#{ten_nums[3..5]}-#{ten_nums[6..9]}"
    else
      final_phone = ""
    end
    puts "#{final_phone}"
  else
    puts "No number to fix."
  end
Run Code Online (Sandbox Code Playgroud)

结果非常好!

480-874-4666
404-581-4000
805-682-4726
978-851-7321
413-658-1100
513-287-7000
813-274-8130
212-363-3200
323-221-2164
Run Code Online (Sandbox Code Playgroud)

但是,我认为有更好的方法.你能否重构这个更有效,更清晰,更有用?

ruby refactoring

4
推荐指数
1
解决办法
2577
查看次数

确定当前本地时间是否在两次之间(忽略日期部分)

考虑到Cocoa-Touch(iPhone上的Objective-C)没有NSTime,并且NSStrings和NSZtring的时区分别是两次,你如何计算当前LOCAL时间是否在这两次之间.请记住,时间字符串中的日期并不重要,并且填充了虚拟日期.

例如:

 TimeZone: Pacific Time (US & Canada)
 Start Time: 2000-01-01T10:00:00Z
 End Time: 2000-01-01T17:00:00Z

 Local Time: now
Run Code Online (Sandbox Code Playgroud)

如何确认当地时间是否在指定的时间范围之间(确保首先将开始/结束时间转换为正确的时区)?

iphone time timezone objective-c

4
推荐指数
1
解决办法
2325
查看次数

当用户滚动MKMapView时,从Core Data加载其他对象

使用iPhone 3.0 SDK中的MapKit,可以创建符合MKAnnotation协议的对象.将这些加载到MKMapView非常简单.但是,当用户滚动MKMapView时,是时候加载新的注释了.请求新对象的可能位置是mapView:regionDidChangeAnimated:在更改地图区域时调用,然后使用新注释添加/替换注释.

具体来说,我想查询Core Data以检索当前MKCoordinateRegion(mapView.region)中存在的所有对象,以便我只加载将在屏幕上显示的对象.Core Data中的对象具有纬度和经度属性(CLLocation属性在类'.m/.h中定义,我可以从中手动填充)并将其用于NSPredicate以查找附近的对象.

由于Core Data数据库中存在多少个对象的性质,我们不能将所有对象预加载为注释,否则我们将耗尽内存(并且它会非常慢).

如何仅检索当前mapview边界中具有位置的对象?

iphone mapping core-data mkcoordinateregion android-mapview

0
推荐指数
1
解决办法
1304
查看次数