mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-09 18:36:35 +00:00
Use secure cookie if https (#6644)
This commit is contained in:
parent
c3ef79caa9
commit
a90203f256
@ -71,7 +71,11 @@ export const createHassioSession = async (hass: HomeAssistant) => {
|
||||
"POST",
|
||||
"hassio/ingress/session"
|
||||
);
|
||||
document.cookie = `ingress_session=${response.data.session};path=/api/hassio_ingress/;SameSite=Strict`;
|
||||
document.cookie = `ingress_session=${
|
||||
response.data.session
|
||||
};path=/api/hassio_ingress/;SameSite=Strict${
|
||||
location.protocol === "https:" ? ";Secure" : ""
|
||||
}`;
|
||||
};
|
||||
|
||||
export const setSupervisorOption = async (
|
||||
|
57
test-mocha/hassio/create_session.spec.ts
Normal file
57
test-mocha/hassio/create_session.spec.ts
Normal file
@ -0,0 +1,57 @@
|
||||
import * as assert from "assert";
|
||||
import { createHassioSession } from "../../src/data/hassio/supervisor";
|
||||
|
||||
const sessionID = "fhdsu73rh3io4h8f3irhjel8ousafehf8f3yh";
|
||||
|
||||
describe("Create hassio session", function () {
|
||||
it("Test create session without HTTPS", async function () {
|
||||
// @ts-ignore
|
||||
global.document = {};
|
||||
// @ts-ignore
|
||||
global.location = {};
|
||||
await createHassioSession({
|
||||
// @ts-ignore
|
||||
callApi: async function () {
|
||||
return { data: { session: sessionID } };
|
||||
},
|
||||
});
|
||||
assert.equal(
|
||||
// @ts-ignore
|
||||
global.document.cookie,
|
||||
"ingress_session=fhdsu73rh3io4h8f3irhjel8ousafehf8f3yh;path=/api/hassio_ingress/;SameSite=Strict"
|
||||
);
|
||||
});
|
||||
it("Test create session with HTTPS", async function () {
|
||||
// @ts-ignore
|
||||
global.document = {};
|
||||
// @ts-ignore
|
||||
global.location = { protocol: "https:" };
|
||||
await createHassioSession({
|
||||
// @ts-ignore
|
||||
callApi: async function () {
|
||||
return { data: { session: sessionID } };
|
||||
},
|
||||
});
|
||||
assert.equal(
|
||||
// @ts-ignore
|
||||
global.document.cookie,
|
||||
"ingress_session=fhdsu73rh3io4h8f3irhjel8ousafehf8f3yh;path=/api/hassio_ingress/;SameSite=Strict;Secure"
|
||||
);
|
||||
|
||||
// Clean up in case they will be used in other tests
|
||||
// @ts-ignore
|
||||
global.document = {};
|
||||
// @ts-ignore
|
||||
global.location = {};
|
||||
});
|
||||
it("Test fail to create", async function () {
|
||||
const createSessionPromise = createHassioSession({
|
||||
// @ts-ignore
|
||||
callApi: async function () {},
|
||||
}).then(
|
||||
() => true,
|
||||
() => false
|
||||
);
|
||||
assert.equal(await createSessionPromise, false);
|
||||
});
|
||||
});
|
Loading…
x
Reference in New Issue
Block a user