2010-08-06 64 views
4

我有一个C/S解决方案,它将Android作为客户端,PHP作为其服务器。Android应用程序可以使用Open-ID服务吗?

我有我自己的帐户系统。

我想知道我是否可以提供我的用户使用Google帐户登录我的系统?

我看到有这方面的网络解决方案,就像这个stackoverflow.com可以使用Google帐户直接登录。

C/S系统是否有解决方案?

回答

2

不是没有网络浏览器。

如果用户未登录到谷歌(或任何其他提供者),他必须先向提供者进行身份验证。这是通过网络浏览器完成的,您甚至不应该以任何其他方式尝试这样做(出于安全原因,用户应确保他已连接到提供商,例如通过在浏览器中查看网址)。

但是,即使用户已经登录,提供者也需要知道 - 通常使用cookie。 cookies存储在网络浏览器中。因此,理论上,您可以解析浏览器的cookie文件,然后尝试立即进行身份验证,但只有在您首先通过Web浏览器登录并授权信赖方之后,该功能才会起作用。

+0

我可以为此使用WebView吗?或者,在Android中调用ChromeLite进行此身份验证并从中获取结果? – Johnny 2010-08-07 08:38:07

+0

如果WebView发送/存储Cookie,您可以。至于获取信息,服务器将从OP接收数据,因为服务器必须是RP(并且它必须有一个http服务器来处理响应)。服务器如何通知客户端它已经被认证是另一个问题。通常,一个可能的解决方案是客户端打开一个指向'http:// server:port/random_token'的浏览器窗口,该窗口重定向到操作系统,操作系统在auth后重定向回服务器,然后服务器通知由auth结果的'random_token'。 – Mewp 2010-08-07 13:32:29

相关问题