【问题标题】:oauth for desktop and mobile with the same code使用相同代码的桌面和移动设备的 oauth
【发布时间】:2013-08-02 11:41:06
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: google-app-engine oauth cordova cross-domain


    【解决方案1】:

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

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

    目前看来运行良好,而且不是很复杂。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-30
      • 2016-12-19
      • 2016-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-06-17
      相关资源
      最近更新 更多