如何在OSX应用程序的localhost上设置HTTP侦听器

问题描述 投票:1回答:1

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

以更好地概述身份验证工作流程的工作方式:

  1. 用户在应用程序中选择授权按钮
  2. 浏览器打开的URL如下:
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. 一旦用户授予许可,页面就会使用授权码或错误(如果不允许)重定向到localhost。重定向网址如下所示:
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。 Google文档说我必须创建一个HTTP侦听器才能获取参数。因此,我想在该端口(9004)上设置HTTP侦听器并获取参数。我可以使用哪个HTTP库来解决此问题?

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

谢谢。

swift macos cocoa oauth macos-catalina
1个回答
0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.