【发布时间】: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包含授权代码和其他元数据。
为了更好地了解身份验证工作流程的工作原理:
- 用户在应用中选择授权按钮
- 浏览器打开时显示如下网址:
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
- Google 帐户选择器和权限同意屏幕呈现并提示用户授予权限..
- 一旦用户授予权限,页面将使用授权代码或错误(如果不允许)重定向到本地主机。重定向网址如下所示:
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