小编Rev*_*ell的帖子

会话cookie不在Electron中工作

我正在考虑在我正在构建的Electron [0]应用程序中实现一个登录系统,但却遇到了处理会话的问题.基本上我想存储用户会话,因此它在应用程序重启之间保持不变(如果启用了"记住我").

我必须使用现有的后端,它使用cookie身份验证,我无法在那里更改任何内容.

从Session对象[1]上的Electron文档中我收集到我应该使用像fe这样的分区persist:someName来获得持久存储,但是这似乎不会在应用程序重启之间持续存在.

我目前设置cookie的方式如下:

// main-process/login.js

const session = require('electron').session;

const currentSession = session.fromPartition('persist:someName').cookies;

currentSession.set({
    name: 'myCookie',
    url: 'https://www.example.com',
    value: 'loggedin=1',
    expirationDate: 1531036000
}, function(error) {
    console.log('Cookie set');
    if (error) {
        console.dir(error);
    }
});
Run Code Online (Sandbox Code Playgroud)

运行之后,我看到了Cookie set输出,但是在重新启动应用程序并运行以下代码时:

// main.js

const session = require('electron').session;

const currentSession = session.fromPartition('persist:someName').cookies;

currentSession.get({}, function(error, cookies) {
    console.dir(cookies);
    if (error) {
        console.dir(error);
    }
});
Run Code Online (Sandbox Code Playgroud)

返回的输出是[].

关于我做错了什么或需要做什么不同的任何指示都将受到高度赞赏!

[0] http://electron.atom.io
[1] http://electron.atom.io/docs/api/session/

javascript cookies session node.js electron

10
推荐指数
1
解决办法
8004
查看次数

使用sed替换HTML标记内容

我正在尝试使用bash脚本中的sed替换HTML页面中某些HTML标记的内容.出于某种原因,我没有得到正确的结果,因为它没有取代任何东西.它必须是非常简单/愚蠢的东西忽视,任何人都在乎帮助我?

用于搜索/替换的HTML:

Unlocked <span id="unlockedCount"></span>/<span id="totalCount"></span> achievements for <span id="totalPoints"></span> points.
Run Code Online (Sandbox Code Playgroud)

使用的sed命令:

cat index.html | sed -i -e "s/\<span id\=\"unlockedCount\"\>([0-9]\{0,\})\<\/span\>/${unlockedCount}/g" index.html 
Run Code Online (Sandbox Code Playgroud)

这一点是解析HTML页面并根据一些外部数据更新数字.对于第一次运行,标签的内容将为空,之后它们将被填充.


编辑:

我最终使用了答案的组合,产生了以下代码:

sed -i -e 's|<span id="unlockedCount">\([0-9]\{0,\}\)</span>|<span id="unlockedCount">'"${unlockedCount}"'</span>|g' index.html
Run Code Online (Sandbox Code Playgroud)

非常感谢@Sorpigal,@ tripleee,@classic的帮助!

html regex bash replace sed

8
推荐指数
2
解决办法
2万
查看次数

在jQuery中设置"Accept"标头,以便在iframe中检索数据

我有一个网页,我附加iframe如下:

$('<iframe id="testIframe" />').src('http://www.google.nl/').appendTo('body');
Run Code Online (Sandbox Code Playgroud)

发送用于加载此iframe内容的Accept标头设置为:

application/xml, application/xml+xhtml, text/html, text/plain, */*
Run Code Online (Sandbox Code Playgroud)

这里的问题是响应现在作为XML返回,因为在服务器端读取了接受头,并且响应以accept头发送的格式发回(在本例中使用application/xml).

现在我知道我可以使用$ .load()功能并为其设置接受标头,但我不知道如何在iframe中显示返回的HTML.例如,这会显示一个空白的iframe:

$('#testIframe').load('http://www.google.com/', function(response) {
    $('#testIframe').append(response);
});
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

ajax iframe jquery header

5
推荐指数
1
解决办法
1488
查看次数

用于托管PHP网站的Docker架构

我一直在研究Docker以及如何在服务器上托管多个网站"Docker方式".据我所知,理想情况下,一切都应该运行自己的容器,不应该共享这些容器.

我的问题是下面的概述是否是一个有效的容器设置,请求进入单个反向代理,该请求将请求转发给底层的Web服务器以处理实际请求.

此外,在下面的三种情况中,我详细介绍了为应用程序包含源文件的不同方法,并想知道三者中哪一种最常用/最好用.

我的愿望是能够在Docker中的单个服务器上运行不同的网站.这些网站可以有不同的要求,如图中不同的PHP-FPM版本所示.网站本身的部署对我来说有点不清楚,因为我不确定是否应该使用nginx/PHP-FPM包含源文件或单独部署它.

Docker架构概述

我目前的设置如下:

泊坞窗,compose.yml

version: '2'
services:
    nginx:
        image: nginx:alpine
        restart: always
        ports:
            - '80:80'
        links:
            - example_com
            - example_org
            - example_net
        volumes:
            - ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf:ro

    example_com:
        image: php:7.0-fpm-alpine
        restart: always
        volumes:
            - ./sites/example_com:/var/www/example_com:ro

    example_org:
        image: php:7.0-fpm-alpine
        restart: always
        volumes:
            - ./sites/example_org:/var/www/example_org:ro

    example_net:
        image: php:7.0-fpm-alpine
        restart: always
        volumes:
            - ./sites/example_net:/var/www/example_net
Run Code Online (Sandbox Code Playgroud)

nginx的/ conf.d/default.conf

server {
    listen       80;
    server_name  www.example.com example.com;

    location ~ \.php$ {
        fastcgi_pass   example_com:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/example_com$fastcgi_script_name;
        include        fastcgi_params;
    }
}

server {
    listen       80;
    server_name …
Run Code Online (Sandbox Code Playgroud)

php architecture proxy nginx docker

5
推荐指数
1
解决办法
503
查看次数

PHPUnit 弃用警告未通过测试

我在 PHP 5.3.29 安装上使用 PHPUnit 4.8。我们应用程序中的一些代码使用了弃用的mysql_*功能,PHPUnit 将这些实例的弃用通知转换为异常,从而使那些特定的测试用例失败。

现在我已经将 包含convertErrorsToExceptions="false"在 config.xml 中,但这似乎没有帮助,因为它仍在发生。

任何人都可以帮助阐明这里可能发生的事情吗?

干杯!

编辑:在gist.github.com上添加了示例文件

php configuration phpunit exception deprecated

3
推荐指数
2
解决办法
4575
查看次数

使用awk/sed解析类似JSON的文件的最佳方法

我有一个文件,其内容如下:

{application_name, [
    {settings, [
        {generic_1, [
            {key_1, "value"},
            {key_2, 1},
            {key_3, [something, other]}
        ]},
        {generic_2, [
            {key_1, "value"},
            {key_3, [something, other]}
        ]},
        {{generic_2, specific_1}, [
            {key_3, [entirely, different]}
        ]},
    ]}
]}
Run Code Online (Sandbox Code Playgroud)

现在我正在寻找一种方法来使用awk或sed(或其他东西)来解析它.我需要的是能够指定一个键,然后返回"blockname".

如果我想要key_3返回的所有设置如下:

generic_1 [something, other]
generic_2 [something, other]
specific_1 [entirely, different]
Run Code Online (Sandbox Code Playgroud)

什么是最好的方法来解决这个问题?

bash awk parsing json sed

1
推荐指数
1
解决办法
1990
查看次数