【问题标题】:Instagram: How to get a brand new token for another userInstagram:如何为另一个用户获取全新的令牌
【发布时间】:2015-03-14 00:13:22
【问题描述】:

我正在开发一个使用 Instagram 集成的 iOS 应用。我能够让一切正常工作。不过,我刚刚注意到的事情是,一旦我打过电话:

https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token

并收到我的令牌,假设另一个用户想使用同一设备登录,我将需要该用户的另一个令牌。我遇到的问题是,当我随后调用https://instagram.com/oauth/authorize/?client_id=CLIENT-ID&redirect_uri=REDIRECT-URI&response_type=token 时,它没有显示 IG 登录屏幕。它会自动验证现有令牌并重定向到用户页面。

是否有一些参数可以包含在 URL 调用中以强制 instagram 显示登录屏幕,以便其他用户可以进行身份​​验证?

【问题讨论】:

    标签: ios oauth token instagram instagram-api


    【解决方案1】:

    删除 cookie 将使用户注销。看起来您要求的是 iOS:

    NSHTTPCookie *cookie;
    NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
    for (cookie in [storage cookies]) {
        [storage deleteCookie:cookie];
    }
    

    【讨论】:

    • 我花了几分钟将其转换为 swift。但我刚试过这个,这个登录屏幕仍然会自动重定向。这就是我所拥有的: var cookie: NSHTTPCookie = NSHTTPCookie() var storage: NSHTTPCookieStorage = NSHTTPCookieStorage.sharedHTTPCookieStorage() var storageCookie = storage.cookies as [NSHTTPCookie] for cookie in storageCookie { storage.deleteCookie(cookie) }
    • 如果我没有找到解决方案,我现在的工作是可行的。它不是无缝的,但它可以完成工作。我现在的工作是手动调用 Instagram 注销 URL,然后用户必须回到我的应用程序并再次重新触发登录屏幕。所以现在是一个两步的过程。
    【解决方案2】:

    前面的答案应该适合你。您只需要在最后添加以下语句即可。

    [[NSUserDefaults standardUserDefaults] synchronize];
    

    这是删除所有 cookie 的完整 Swift 代码:

    let storage = NSHTTPCookieStorage.sharedHTTPCookieStorage()
    if let cookies = storage.cookies {
        for cookie in cookies as [NSHTTPCookie] {
            storage.deleteCookie(cookie)
        }
    }
    
    NSUserDefaults.standardUserDefaults().synchronize()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-22
      相关资源
      最近更新 更多