0

我正在使用phonegap,我想使用相同的代码为移动和网络(例如桌面chrome)设置google oauth。最终结果应该是客户端的应用引擎 cookie(无论是应用内浏览器还是桌面浏览器)。

由于我不希望我的用户多次执行同意屏幕,因此我需要一个 refresh_token 而不仅仅是一个 access_token。(我也注意到cordova webview无法像普通浏览器那样访问cookies)

据我了解,只有在执行为 Web 服务器推荐的协议时才能收到 refresh_token,这意味着首先获取代码,然后使用它来获取 access_token 和 refresh_token。

当我以这种方式进行身份验证时,协议要求我将收到的代码发送给 google 以接收访问令牌,但这是一个跨域请求,在桌面浏览器上被阻止。

如何方便地解决这个问题?达到最终结果的正确方法是什么?

4

1 回答 1

0

我使用我的服务器作为跨域发布请求的中介粗略地解决了我的问题。

所以流程是这样工作的:我使用弹出窗口获取身份验证代码。然后用户输入代码,我的 javascript 将其发送到我的服务器。然后服务器向google发送一个access_token和refresh_token的请求,并返回给用户。

目前似乎工作得很好,而且不是很复杂。

于 2013-08-04T19:45:06.173 回答