在 Vapor 中使用第三方 OAuth API

Using a third party OAuth API in Vapor

我正在学习 Vapor,作为这个过程的一部分,我正在使用该框架构建一个网站。作为我的应用程序的一部分,我想使用使用 OAuth 的 Uber API。

如概述的检索用户访问令牌的过程here,它特别建议使用预构建的库来执行授权授予和令牌交换。

对于 OAuth,我找到了两个库,它们是:

OAuthSwiftp2/OAuth2

这两个库似乎与 Swift 的包管理器不兼容,因此不能与 Vapor 一起使用。

有什么解决办法吗?还是我必须手动创建一个库来支持 Vapor 的 OAuth 流程?

据我所知,Vapor 中的大多数身份验证都是使用 turnstile 完成的: https://github.com/stormpath/Turnstile

raywenderlich 提供了很好的教程/演练: https://videos.raywenderlich.com/screencasts/637-server-side-swift-with-vapor-authentication-with-turnstile

既然你想与 Uber 集成,我建议阅读 Uber 的 SDK 进行身份验证并添加你自己的方法来处理用户端点,这样你就可以将 Uber 添加为提供者而不是添加一个全新的 OAuth 库/ 框架为您完成。

另一个很棒的资源是 Vapor OAuth,它写得很漂亮,但技术含量更高: https://github.com/brokenhandsio/vapor-oauth

如果您是网络开发新手,我建议您在学习 Vapor 之前学习一个众所周知的框架,例如 React 或 Angular 和 Node.js,或者在此之前有一些本地 swift 经验继续。 React 和 Angular 是基于 Javascript 的 Web 框架,您可以很容易地获得帮助。 React 还支持使用 React Native iOS 开发,并且比 Vapor 使用得更频繁。