【问题标题】:Google Apps Script Web App authenticate on external websiteGoogle Apps Script Web App 在外部网站上进行身份验证
【发布时间】:2016-10-07 02:56:18
【问题描述】:

我需要实现一个用于登录网站的 Google Apps Script 应用,然后如果该网站上的身份验证过程成功,用户应该会在 google 脚本侧边栏中收到一条消息。

例如:用户输入他的电子邮件和密码,然后他按下登录按钮,如果凭据正确,他应该在网站上登录。

如果我需要提供更多详细信息,请告诉我...我是 Google Apps 脚本的新手,我真的需要一些有关此登录过程的帮助。谢谢!

我尝试实现以下代码,但在执行login 函数时收到以下错误消息:

https://example.com/login 请求失败,返回代码 405。

HTML 文件:

<div class="form-auth">
  <label class="inline">username</label>
  <input type="text" placeholder="Insert Email"/>
</div>
<div class="form-auth">
  <label class="inline">password</label>
  <input placeholder="Insert Password"/>
</div>
<button class="btn-default">Login</button>

谷歌脚本文件:

function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Menu')
      .addItem('Show sidebar', 'showSidebar')
      .addToUi();
}

function showSidebar() {
  var html = HtmlService.createHtmlOutputFromFile('login')
      .setSandboxMode(HtmlService.SandboxMode.IFRAME)
      .setTitle('SDR Tag Governance')
      .setWidth(300);
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showSidebar(html);
}

function login() {
  var payload =
   {
     "username" : "myEmail@domain.com",
     "password" : "myPassword",
   };
  var options =
   {
     "method" : "post",
     "payload" : payload,
     "followRedirects" : false
   };
  var login = UrlFetchApp.fetch("https://example.com/login" , options);
  var sessionDetails = login.getAllHeaders()['Set-Cookie'];
}

【问题讨论】:

  • 状态 405 表示方法不允许,也许您的网址不需要您发送的内容。您是否尝试使用 ajax 从浏览器执行相同的登录调用?从浏览器控制台执行时,请确保您在同一个域中,即 example.com,除非您禁用了 CORS。
  • 我设法通过添加headers 选项解决了这个问题。

标签: google-apps-script web-applications urlfetch


【解决方案1】:

通过添加标题选项解决了这个问题:

  var headers = {
    'Connection':'keep-alive',
    'Content-Type':'application/json;charset=utf-8',
    'Accept':'application/json, text/plain, */*',
    'Cookie':'...',
  }

【讨论】:

    猜你喜欢
    • 2015-06-06
    • 2023-03-27
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-02
    • 1970-01-01
    相关资源
    最近更新 更多