【问题标题】:How to setup an HTTP listener on localhost in a OSX App如何在 OSX 应用程序的本地主机上设置 HTTP 侦听器
【发布时间】:2020-04-05 00:01:26
【问题描述】:

我正在尝试使用 swift 和 storyboard 构建一个 OSX 应用程序。我正在为该应用实施 Google OAuth。按照谷歌指南https://developers.google.com/identity/protocols/oauth2/native-app#sample-authorization-urls,我打开一个带有环回授权url的浏览器(即登录后,它环回到本地主机,其中url包含授权代码和其他元数据。

为了更好地了解身份验证工作流程的工作原理:

  1. 用户在应用中选择授权按钮
  2. 浏览器打开时显示如下网址:
https://accounts.google.com/o/oauth2/v2/auth?
 scope=email%20profile&
 response_type=code&
 state=security_token%3D138r5719ru3e1%26url%3Dhttps%3A%2F%2Foauth2.example.com%2Ftoken&
 redirect_uri=http%3A//127.0.0.1%3A9004&
 client_id=client_id
  1. Google 帐户选择器和权限同意屏幕呈现并提示用户授予权限..
  2. 一旦用户授予权限,页面将使用授权代码或错误(如果不允许)重定向到本地主机。重定向网址如下所示:
http://127.0.0.1:9004/?code=auth_code&
scope=email%20profile%20openid%20https://www.googleapis.com/auth/userinfo.profile%20https://www.googleapis.com/auth/userinfo.email&
authuser=0&
prompt=consent

所以现在我想在我的应用程序中使用参数code。谷歌文档说我必须创建一个 HTTP 侦听器才能获取参数。所以我想在那个端口(9004)设置一个 HTTP 监听器并获取参数。我可以使用什么 HTTP 库来解决这个问题?

我没有尝试让自己参与任何 osx 的 oauth 库,我想自己实现,但如果有一个库可以用有限的样板文件解决这个问题,建议他们。

谢谢。

【问题讨论】:

    标签: swift macos cocoa oauth macos-catalina


    【解决方案1】:

    我会推荐适用于 macOS 和 iOS 的 AppAuth 框架。它会为您处理所有这些,并包括在环回接口上设置 HTTP 服务器的选项。

    【讨论】:

    • 问题当然是 Chrome 已经开始阻止所有 http 连接,并且 AppAuth 似乎被硬编码为使用 http
    猜你喜欢
    • 1970-01-01
    • 2017-12-23
    • 1970-01-01
    • 1970-01-01
    • 2010-09-25
    • 2018-04-24
    • 2019-02-12
    • 1970-01-01
    • 2016-04-30
    相关资源
    最近更新 更多