如何在 Nest API iOS 中成功注销后重新加载登录页面
Posted
技术标签:
【中文标题】如何在 Nest API iOS 中成功注销后重新加载登录页面【英文标题】:How to reload login page after successfully logout in Nest API iOS 【发布时间】:2017-02-16 06:58:16 【问题描述】:我正在使用 Nest API 开发 ios 应用程序,我可以通过提供 NestWebview
将 login
和 logout
加入我的 Nest 帐户。
但是当我logout
并再次尝试login
时,问题就来了,NestWebview
直接显示Accept page
而不是login page
。所以我的要求是当用户成功注销时,它应该显示login page
而不是Accept Page。
对于注销,我使用 Nest Documentation 建议的以下代码行。 https://developer.nest.com/documentation/cloud/deauthorization-overview/:
curl -v -X DELETE
"https://api.home.nest.com/oauth2/access_tokens/<access_token>"
第一次登录的工作原理。
Click on Nest login
-> Open login page
-> After successfully,Accept login page
-> Click on Accept button
-> Get device list
注销后如何工作。
Click on Nest login
-> Accept login page
-> Click on Accept button
-> Get device list
所以注销成功后,
登录页面丢失。
他们有什么办法可以做到这一点吗?提前致谢。
【问题讨论】:
【参考方案1】:几个月前我也遇到过类似的问题。我查询了他们,几天后我得到了 Nest 的回复。
"我相信您想知道为什么您会获得带有 撤销令牌后的“接受”按钮而不是登录页面。原因 是因为您仍然有一个有效的网络会话,因此单点登录是 尝试使用现有会话进行授权。如果您滚动到权限页面的底部,您会发现一个链接“登录到其他帐户>”此链接会清除现有会话并强制用户登录屏幕。“
希望它能帮助您理解您的问题。
【讨论】:
感谢@Vivek 的回复。我会调查它并让你知道它是否对我有用..【参考方案2】:清除 cookie 将帮助您恢复登录页面,请在注销时执行此操作。
NSHTTPCookieStorage *storage = [NSHTTPCookieStorage sharedHTTPCookieStorage];
for (NSHTTPCookie *cookie in [storage cookies])
[storage deleteCookie:cookie];
[[NSUserDefaults standardUserDefaults] synchronize];
【讨论】:
以上是关于如何在 Nest API iOS 中成功注销后重新加载登录页面的主要内容,如果未能解决你的问题,请参考以下文章