首页 > 解决方案 > 无法在 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 清除代码,但那不起作用请帮我解决这个问题

标签: iosarrayspinterest

解决方案


我有一个非常相似的问题,我想我可以通过在这里发布我的解决方案来帮助别人。我正在维护的应用程序通过在具有适当参数的 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() 来删除任何存储的身份验证令牌。


推荐阅读