ios - 无法在 swift 中注销 pinterest
问题描述
我正在我的 swift 应用程序中集成 Pinterest 登录,但问题是我完全登录成功,但是当我单击按钮注销时,我无法注销这里是我的代码
代码
@IBAction func btnLogin(_ sender: UIButton) {
PDKClient.sharedInstance().authenticate(withPermissions: [PDKClientReadPublicPermissions,PDKClientWritePublicPermissions,PDKClientReadRelationshipsPermissions,PDKClientWriteRelationshipsPermissions], withSuccess: { (PDKResponseObject) in
self.accessToken = PDKClient.sharedInstance().oauthToken
//MARK: - Getting User Profile, use "/v1/me" to get user data in the Response object -
let parameters : [String:String] =
[
"fields": "first_name,id,last_name,url,image,username,bio,counts,created_at,account_type" //these fields will be fetched for the loggd in user
]
PDKClient.sharedInstance().getPath("/v1/me/", parameters: parameters, withSuccess: {
(PDKResponseObject) in
self.view.isUserInteractionEnabled = true
self.user = (PDKResponseObject?.user())!
print(PDKResponseObject!)
self.lblUserName.text = PDKResponseObject?.user().username
if let url = JSON(PDKResponseObject?.user().images["60x60"] as Any)["url"].string
{
self.imgProPic.sd_setImage(with: URL(string: url))
}
}) {
(Error) in
if let error = Error
{
print("\(Error)")
}
self.view.isUserInteractionEnabled = true
PDKPinError.unknown
}
}) {
(Error) in
self.view.isUserInteractionEnabled = true
}
}
@IBAction func btnLogout(_ sender: UIButton) {
/*
let cookieJar : HTTPCookieStorage = HTTPCookieStorage.shared
for cookie in cookieJar.cookies! as [HTTPCookie]{
NSLog("cookie.domain = %@", cookie.domain)
if cookie.domain == "www.pinterest.com" ||
cookie.domain == "api.pinterest.com"{
cookieJar.deleteCookie(cookie)
}
}
*/
PDKClient.clearAuthorizedUser()
}
在这里,我已经完成了 clearAuthorizedUser() 但没有注销,而且我已经完成了 cookie 清除代码,但那不起作用请帮我解决这个问题
解决方案
我有一个非常相似的问题,我想我可以通过在这里发布我的解决方案来帮助别人。我正在维护的应用程序通过在具有适当参数的 UIWebView 中加载“ https://api.pinterest.com/oauth/ ”来验证 Pinterest。这种身份验证方法不需要 Pinterest SDK,在此处进行了详细说明:https ://developers.pinterest.com/docs/api/overview/ 。我能够添加一个按钮,用户可以点击该按钮将他们从经过身份验证的 Pinterest 帐户中注销。为了让用户注销,我删除了所有与 Pinterest 身份验证相关的 cookie,并删除了所有存储的身份验证令牌。以下是我用来删除 cookie 的代码:
let cookieJar: HTTPCookieStorage = HTTPCookieStorage.shared
if let cookies: [HTTPCookie] = cookieJar.cookies {
for cookie in cookies {
let domain = cookie.domain
if domain == "accounts-oauth.pinterest.com"
|| domain == ".pinterest.com"
|| domain == ".facebook.com"
|| domain == "accounts.google.com" {
cookieJar.deleteCookie(cookie)
}
}
}
之后,您很可能需要调用 PDKClient.clearAuthorizedUser() 来删除任何存储的身份验证令牌。
推荐阅读
- powershell - 通过 Powershell 将一行数据添加到 CSV 文件
- android - 无法使用 Cordova 插件在 Android Studio 中编译 Cordova 项目
- python - 如何找到坐标所在的道路网络的链接?(地图匹配)
- cassandra - Cassandra 如何仅使用分区键检索行?
- javascript - 优化 Instagram 嵌入以在 DOM 事件后加载
- angular - 我是 Angular 5 的新手并收到此错误:未捕获错误:模板解析错误:'employee-list' 不是已知元素:
- xml - codecept 可以查看 RSS 提要 (XML) 中的元素吗?
- javascript - 在 Chrome 扩展程序中强制代理重新身份验证
- dialogflow-es - 链接权限意图
- python - ModuleNotFoundError 与 Django,无法识别应用程序的名称