【译】iOS 用 ASWebAuthenticationSession 实现 OAuth 登录(二)- 创建 GitHub App

294 阅读3分钟

原文链接:Implementing OAuth with ASWebAuthenticationSession | Kodeco


iOS 用 ASWebAuthenticationSession 实现 OAuth 登录

创建 GitHub App

如果希望 APP 和 GitHub 进行会话,GitHub 需要知道用户要在哪里试图用 APP 访问它的资源 并且需要知道应该授权哪些资源可访问。

是时候在你的账户里创建 GitHub APP 了。下面就是如何开始! 在 Web 浏览器中,打开并登录 GitHub 。在右上角点击你的 头像。然后,点击 Settings

GitHub user menu

点击 Developer settings

GitHub developer settings menu

点击 GitHub Apps 。点击 New GitHub App 按钮:

GitHub Apps section

创建新的 APP 时,有一些选项和设定。现在要配置这些。

命名 APP 为 AuthHub- 。根据需要为 APP 添加 description (描述)。

为你的 APP 添加 homepage URL 。该示例使用  www.raywenderlich.com/ 。 如果是创建你个人的 APP ,应该链接到你的 APP 的主页,用户在这里可以看到更多的信息。

Register new GitHub App page

用户授权设定

settings center 的下一个设定是关于用户授权的。 第一个选项是授权的回调 URL。 这是授权提供方在成功授权后要重定向的页面。 APP 中会监听在这里指定的格式,一旦用户获得授权,就会拿回控制权。

使用下面的内容作为 APP 的回调 URL:

authhub://oauth-callback

这只是自定义的回调。 可以根据需要使用不同的值,但要注意使用  ASWebAuthenticationSession 时会改变设置过程。
现在,使用上面的值很方便,可以继续了。

接下来的选项是一个单选框,询问用户的授权 Token 是否可过期。 选中该单选框,因为你希望在选择即将过期的 AccessToken 时获取刷新 Token ,以实现更好的安全模型。 最后,会有个在安装请求时用户授权的选项,可以保持不选中,因为对于你的 APP 来说不需要。

Identifying and authorizing users section

安装完成选项

页面再往下,是安装完成选项和 Web 钩子,可以保持空白。

Post installation section

确认 Webhook 下面的 Active 单选框没有选中

权限设定

接下来的部分和权限有关。在这里可以指定 APP 能够访问哪些信息。

Contents (内容)设定中,将访问选项设为 Read-only (只读)。

Repository permissions section

最后有一个设置用于指定 APP 安装的地方。例如,选择 Only on this account (仅该用户)。

App account options section

恭喜!你已经配置好了你的 APP 。现在,点击 Create GitHub App ,然后就能看到你的 APP 的详情页面了。

查看结果

你已经在 GitHub 中用它的 APP ID 和 客户端 ID 创建了 APP 。现在你可以设置客户端了 - 在本篇中,客户端是指 AuthHub iOS APP - 连接并使用你的 GitHub 的 APP 。如果你用三个不同的 APP - 可能是 iOS 、Android 和 Web - 来连接你的 GitHub APP ,你会想生成三个不同的客户端密钥。

如果你在页面顶部在看到了一个黄色条提示你必须生成一个私钥,那就点击链接去生成一下。

接下来,点击 Generate a new client secret 按钮。复制表示的字母数字值并粘贴到可永久保存的地方,因为 GitHub 不会让你再次看到该信息。

Generating client secret

要谨慎使用你的客户端密钥,确保不会向其它人分享。

需要在 GitHub 上做的所有工作都已经完成了。 是时候编写 Swift 代码了!