2016-06-07 56 views
0

我需要實現一個用於在網站上登錄的谷歌腳本應用程序,然後如果身份驗證過程在該網站上成功,用戶應該在Google腳本邊欄中收到一條消息。Google腳本在外部網站上進行身份驗證

例如:用戶輸入他的電子郵件和密碼,然後他按下登錄按鈕,然後他應該在網站上登錄,如果憑據是正確的。

讓我知道如果我需要提供更多細節......我是新的谷歌應用腳​​本,我真的需要一些幫助,這個登錄過程。謝謝!

我試圖執行下面的代碼,但在執行login功能時,我收到以下錯誤信息:Request failed for https://example.com/login returned code 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" : "[email protected]", 
    "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']; 
} 
+0

狀態405意味着方法不允許,也許你的網址不需要你發送它。您是否嘗試使用ajax從瀏覽器進行相同的登錄調用?從瀏覽器控制檯執行操作時,請確保您位於相同的域名,即example.com,除非您禁用了CORS。 – MShoaib91

+0

我設法通過添加'headers'選項來解決這個問題。 – Valip

回答

1

通過添加標題選項來修復此問題:

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