【问题标题】:Google API - How can I make a HTTP Get to authenticate user and get a refresh token from client js?Google API - 如何进行 HTTP Get 来验证用户并从客户端 js 获取刷新令牌?
【发布时间】:2017-05-24 02:02:13
【问题描述】:

我目前正在整合 Google 日历和我公司的网站。但我想保存用户的凭据,所以他只需要验证一次。我构建了以下 URL。

https://accounts.google.com/o/oauth2/v2/auth?client_id=my_client_id&redirect_uri=localhost&state=django_csrf_token&scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fcalendar&access_type=offline&response_type=code

并调用以下sn-p:

xhr = new XMLHttpRequest();
xhr.open('GET', url);
xhr.setRequestHeader('Access-Control-Allow-Origin', '*');
xhr.send();

现在。我卡住了……

【问题讨论】:

    标签: javascript google-api xmlhttprequest google-oauth google-api-js-client


    【解决方案1】:

    您无法通过 XMLHttpRequest 执行 OAuth 调用。如果用户当前未登录 Google,用户将如何通过该调用登录?用户将如何批准您的应用程序请求的权限?您实际上必须将他们的浏览器重定向到该 URL。

    【讨论】:

    • 很酷,但是如何从身份验证中恢复生成的对象?因为此身份验证应返回包含 refresh_token 属性的 JSON。
    • @JoãoEsteves 将用户重定向到该 URL 后,用户将能够批准您的申请。完成后,Google 会将用户引导回您在查询字符串中指定的回调 URL。当您在服务器上收到该请求时,您将在查询字符串参数中看到授权代码。将其与您的客户端 ID 和密码一起使用,向 Google 发出 POST 请求,以将您的授权代码交换为访问令牌和刷新令牌。
    猜你喜欢
    • 2014-08-18
    • 2015-09-18
    • 2012-03-03
    • 1970-01-01
    • 2019-08-23
    • 2014-07-18
    • 2012-06-25
    • 1970-01-01
    • 2013-02-03
    相关资源
    最近更新 更多