【发布时间】:2015-01-06 05:27:36
【问题描述】:
我让 Gigya 使用社交登录正确登录。但是,当我尝试使用 [Gigya logout] 注销时,当我在登录屏幕上点击我的 Google 按钮时,它会在不询问我的 Google 凭据的情况下让我重新登录。
如何让它再次询问我的 Google 凭据?
谢谢。
【问题讨论】:
我让 Gigya 使用社交登录正确登录。但是,当我尝试使用 [Gigya logout] 注销时,当我在登录屏幕上点击我的 Google 按钮时,它会在不询问我的 Google 凭据的情况下让我重新登录。
如何让它再次询问我的 Google 凭据?
谢谢。
【问题讨论】:
如果您已配置 Google+ 原生登录,则您的应用已获得用户授权。因为设备上的 Google+ 应用程序有一个活动的 Google+ 会话,所以当 Gigya 向本机应用程序请求身份验证时,它会检测到有一个活动的会话并且该应用程序已经被授权。因此,用户会自动登录,而不会提示输入凭据。此行为是预期的,并且是设计使然。如果您想强制用户每次都进行身份验证,则需要按如下方式完成:
在调用[showLoginProvidersPopover:providers:parameters:...] 时,请确保包含参数"forceAuthentication",其值为 YES,如 loginToProvider 文档中所述:
例如:
NSDictionary *params = @{
@"forceAuthentication":@YES
};
[Gigya showLoginProvidersDialogOver:self
providers:@[@"facebook", @"twitter", @"googleplus"]
parameters: params
completionHandler:^(GSUser *user, NSError *error) {
if (!error) {
// Login was successful
}
else {
// Handle error
}
}];
【讨论】:
[Gigya logout] 的调用不会使用户退出 Google+ 应用程序;仅在您的应用程序上来自 Gigya。 Google 已明确禁止外部应用程序更改 Google+ 应用程序中的活动会话,因为它可能被恶意使用。