从Chrome扩展程序登录我的网站

Alb*_*ias 9 login google-chrome-extension

我有一个网站,登录用户可以填写表格来发送信息.我希望我的用户也可以通过Chrome扩展程序执行此操作.我设法获取表单以提供信息,但我只想登录用户才能这样做.当用户首次打开扩展时,它就像是推特或Springpad扩展,它必须登录或注册.我在堆栈溢出时看到以下答案:使用chrome扩展程序登录到网站并从中获取数据

我试了一下,把这段代码放在background.html中:

function login() {
    $.ajax({
        url: "http://localhost/login", type: "GET", dataType: "html", success: function() {
            $.ajax({
                url: "http://localhost/login", type: "POST", data: {
                    "email": "me@alberto-elias.com",
                    "password": "mypassword",
                },
            dataType: "html",
            success: function(data) {
               //now you can parse your report screen
            }
            });
        }
    }); 
}
Run Code Online (Sandbox Code Playgroud)

在我的popup.html中,我输入以下代码:

var bkg = chrome.extension.getBackgroundPage()
$(document).ready(function() {
    $('#pageGaffe').val(bkg.getBgText());  
    bkg.login();        
});
Run Code Online (Sandbox Code Playgroud)

在我的服务器上,在node.js中,我有一个console.log,当他登录时显示用户信息,所以我看到当我加载我的扩展时,它确实登录.问题是我怎么能让用户自己登录,而不是手动将我的详细信息放在代码中,如何保持登录在扩展中,并在提交表单时,将用户的详细信息发送到Web.

我希望我能够正确地解释自己.

谢谢.

Juz*_*Ali 17

在回答此问题之前,我想提醒您,如果您已声明适当的权限,则可以 Chrome 13的内容脚本开始xhr.这是页面的摘录

版本说明:从Chrome 13开始,内容脚本可以向与扩展的其余部分相同的服务器发出跨源请求.在Chrome 13之前,内容脚本无法直接发出请求; 相反,它必须向其父扩展发送一条消息,要求扩展程序发出跨域请求.

即将到来.您只需从您的扩展(内容脚本或后台页面)向您的域创建XmlHttpRequest并等待响应.

在服务器上

阅读请求和会话cookie.如果会话有效,请发送正确的响应,否则发送错误代码.401或其他任何东西.

在客户端

如果响应正确显示,则显示指向您网站登录页面的登录链接.

这个怎么运作:

如果启用了用户浏览器中的cookie,它将起作用.每当用户登录到您的网站时,您的服务器都会设置一个驻留在用户浏览器中的会话cookie.现在,对于浏览器发送到您的域的每个请求,都会传输此cookie.即使请求来自Google Chrome扩展程序,也会传输此Cookie.

警告

确保向用户显示正确的提示,表明他们已登录到您的应用程序.由于您的用户界面主要位于扩展程序中,因此用户可能无法知道他们与您的网站的有效会话,并且他们可能会留下无人参与的活动会话,如果用户从公共互联网信息亭访问它,则可能会被滥用.

参考

您可以查看我在此处使用扩展程序执行的类似实现.