Voucher:tvOS App认证开发库

 ,  , 

屏幕快照 2016-03-18 下午7.45.20

Voucher是一个方便 tvOS App 通过 iOS 设备上相应的程序来认证的开发库。

新款的 Apple TV 给用户带来了震撼体验,但在键盘输入方面还非常不理想。对用户来讲,在 Apple TV 上键入凭证是非常困难的事情。不过不用担心,使用 Voucher 可以方便的通过 iOS 设备中的相应程序在 Apple TV 上对 tvOS App 进行认证。

工作机制

Voucher 使用了 Bonjour ,Bonjour 是一项能够发现网络上的其它设备并获取服务信息的技术,也被称为零配置联网。在工作状态下,tvOS 中的 Voucher 开始在本地网络和 AWDL (Apple Wireless Direct Link) 上搜索可以提供 Voucher 服务的 iOS 设备。

一旦搜索到能够提供 Voucher 服务的 iOS 设备,tvOS 中的 Voucher 就会请求它提供认证服务。Demo App 演示如下:

Sample tvOS App

然后 iOS 设备上的 Demo App 就会向用户弹出一个提示框(可以显示自定义的UI,甚至没有UI):

iOS app shows a dialog

如果用户接收了服务请求,就可以通过 iOS 设备上的 App 向 tvOS App 发送认证数据(演示中将一个认证令牌字符串作为认证数据):

Sample tvOS App

安装

Voucher 可以通过 Carthage 和 CocoaPods 进行安装。当然,你也可以手动安装。

通过 Carthage 安装

通过 CocoaPods 安装

手动安装

  • 将 repo 克隆到电脑上
  • 将 Voucher 子文件夹下的源文件拷贝到工程中

使用

在 tvOS App 中,当用户想要进行认证的时候,应该创建一个 VoucherClient 实例对象并启动它。

tvOS(请求认证服务)

当用户触发 “登录” 按钮时,App 应该在界面中提示用户打开 iOS App 完成登录 ,然后启动 Voucher 客户端:

iOS(提供认证服务)

如果 iOS App 具有认证证书,就应该开始提供 Voucher 服务,所以它可以响应登录用户的任何服务请求。建议在用户登录成功之后开始提供服务:

建议

使用令牌,而不是密码

虽然你可以向 tvOS 传回任何想要发送的数据,但你应该传回一个 OAuth 令牌,或者采取更好的做法,在服务端生成某种 single-use token(一次性令牌)并发送给 tvOS 。例如,Cluster 从网页发送一次性令牌到 iOS App 进行自动登录认证。进入 Medium post 可以查看具体实现,同一个 model 可以同时用于 iOS 登录和 tvOS 登录。

Voucher 不能作为唯一的登录选项

在 Apple TV 的登录屏幕上,你还必须要根据 App Store Submission Guidelines (Section 2.27) 提供手动输入的 界面 。另外,除了登录屏幕的形式,你还应该添加消息,以便用户能够简单的打开 iOS App 进行登录。

深入阅读

阅读一下 Benny Wong 发表的一篇关于 why Apple TV sign in sucks 的文章。他也封装了一个 demo tvOS Authing project ,可以参考一下。

要求

  • iOS 7.0 及以上
  • tvOS 9.0
  • Xcode 7

开源协议

Voucher 在 MIT开源协议 下可以使用,也就是说,只要在项目副本中包含了版权声明和许可声明,用户就可以使用 Voucher 做任何想做的事情,而 Voucher 也无需承担任何责任。可以通过查看 LICENSE 文件来获取更多相关信息。

开源地址:https://github.com/rsattar/Voucher

打赏支持我整理更多优质资源,谢谢!

打赏编辑

打赏支持我整理更多优质资源,谢谢!

任选一种支付方式

1 收藏

资源整理者简介:魏川程



直接登录

推荐关注

按分类快速查找

关于资源导航
  • 伯乐在线资源导航收录优秀的工具资源。内容覆盖开发、设计、产品和管理等IT互联网行业相关的领域。目前已经收录 1440 项工具资源。
    推送伯乐头条热点内容微信号:jobbole 分享干货的技术类微信号:iProgrammer