用于 Kitura-Credentials 框架的插件,使用 Dropbox OAuth2 令牌进行身份验证
用于 Kitura-Credentials 框架的插件,使用 Dropbox OAuth2 令牌进行身份验证,该令牌由移动应用程序或基于 Kitura 的后端服务器的其他客户端获取。
最新版本的 CredentialsDropbox 需要 Swift 4.0。您可以通过以下 链接 下载此版本的 Swift 二进制文件。 不保证与其他 Swift 版本的兼容性。
此示例演示了如何使用 CredentialsDropboxToken
插件来验证 post 请求,它显示了所涉及的服务器端和客户端。
首先创建 Credentials
的实例和 CredentialsDropboxToken
插件的实例
import Credentials
import CredentialsDropbox
let credentials = Credentials()
let dropboxCredentials = CredentialsDropboxToken(options: options)
其中
CredentialsDropboxOptions
中列出。现在注册插件
credentials.register(dropboxCredentials)
将 credentials
中间件连接到 post 请求
router.post("/collection/:new", middleware: credentials)
如果身份验证成功,request.userProfile
将包含从 Dropbox 收到的用户个人资料信息
router.post("/collection/:new") {request, response, next in
...
let profile = request.userProfile
let userId = profile.id
let userName = profile.displayName
...
next()
}
客户端需要在请求的 access_token
HTTP 标头字段中放入 Dropbox 访问令牌,并在 X-token-type
字段中放入 "DropboxToken"。并且由于 Dropbox 似乎没有直接验证访问令牌的方法,因此您需要使用标头键 X-account-id
传递 dropbox uid
let urlRequest = NSMutableURLRequest(URL: NSURL(string: "http://\(serverUrl)/collection/\(name)"))
urlRequest.HTTPMethod = "POST"
urlRequest.HTTPBody = ...
urlRequest.addValue(dropboxAccessToken, forHTTPHeaderField: "access_token")
urlRequest.addValue("DropboxToken", forHTTPHeaderField: "X-token-type")
urlRequest.addValue(dropboxUid, forHTTPHeaderField: "X-account-id")
Alamofire.request(urlRequest).responseJSON {response in
...
}
此库已获得 MIT 许可。 完整的许可证文本可在 LICENSE 中找到。