use SameSite=Lax instead of Strict so cookies aren't lost when opening links

This commit is contained in:
Sean Yesmunt 2019-11-20 15:57:38 -05:00
parent cae85d9117
commit a87470126a
5 changed files with 17 additions and 15 deletions

View file

@ -2,12 +2,13 @@ const config = {
WEBPACK_WEB_PORT: 9090, WEBPACK_WEB_PORT: 9090,
WEBPACK_ELECTRON_PORT: 9091, WEBPACK_ELECTRON_PORT: 9091,
WEB_SERVER_PORT: 1337, WEB_SERVER_PORT: 1337,
DOMAIN: 'https://lbry.tv', DOMAIN: 'lbry.tv',
URL: 'https://lbry.tv',
SITE_TITLE: 'lbry.tv', SITE_TITLE: 'lbry.tv',
LBRY_TV_API: 'https://api.lbry.tv', LBRY_TV_API: 'https://api.lbry.tv',
}; };
config.DOMAIN_LOCAL = `http://localhost:${config.WEB_SERVER_PORT}`; config.URL_LOCAL = `http://localhost:${config.WEB_SERVER_PORT}`;
config.DOMAIN_DEV = `http://localhost:${config.WEBPACK_WEB_PORT}`; config.URL_DEV = `http://localhost:${config.WEBPACK_WEB_PORT}`;
module.exports = config; module.exports = config;

View file

@ -17,7 +17,7 @@ async function redirectMiddleware(ctx, next) {
} }
if (redirectHosts.includes(requestHost)) { if (redirectHosts.includes(requestHost)) {
const redirectUrl = config.DOMAIN + path; const redirectUrl = config.URL + path;
ctx.redirect(redirectUrl); ctx.redirect(redirectUrl);
return; return;
} }

View file

@ -1,4 +1,4 @@
const { DOMAIN } = require('../../config.js'); const { URL } = require('../../config.js');
const { generateStreamUrl } = require('../../ui/util/lbrytv'); const { generateStreamUrl } = require('../../ui/util/lbrytv');
const { getClaim } = require('./chainquery'); const { getClaim } = require('./chainquery');
const { parseURI } = require('lbry-redux'); const { parseURI } = require('lbry-redux');
@ -9,13 +9,13 @@ let html = fs.readFileSync(path.join(__dirname, '/../dist/index.html'), 'utf8');
const defaultHead = const defaultHead =
'<title>lbry.tv</title>\n' + '<title>lbry.tv</title>\n' +
`<meta property="og:url" content="${DOMAIN}" />\n` + `<meta property="og:url" content="${URL}" />\n` +
'<meta property="og:title" content="lbry.tv" />\n' + '<meta property="og:title" content="lbry.tv" />\n' +
'<meta property="og:site_name" content="lbry.tv | Content Freedom"/>\n' + '<meta property="og:site_name" content="lbry.tv | Content Freedom"/>\n' +
'<meta property="og:description" content="Meet LBRY, an open, free, and community-controlled content wonderland." />\n' + '<meta property="og:description" content="Meet LBRY, an open, free, and community-controlled content wonderland." />\n' +
`<meta property="og:image" content="${DOMAIN}/og.png" />\n` + `<meta property="og:image" content="${URL}/og.png" />\n` +
'<meta name="twitter:card" content="summary_large_image"/>\n' + '<meta name="twitter:card" content="summary_large_image"/>\n' +
`<meta name="twitter:image" content="${DOMAIN}/og.png"/>\n` + `<meta name="twitter:image" content="${URL}/og.png"/>\n` +
'<meta property="fb:app_id" content="1673146449633983" />'; '<meta property="fb:app_id" content="1673146449633983" />';
function insertToHead(fullHtml, htmlToInsert = defaultHead) { function insertToHead(fullHtml, htmlToInsert = defaultHead) {
@ -45,7 +45,7 @@ function buildOgMetadata(uri, claim) {
? escapeHtmlProperty(truncateDescription(claim.description)) ? escapeHtmlProperty(truncateDescription(claim.description))
: `Watch ${title} on LBRY.tv`; : `Watch ${title} on LBRY.tv`;
const claimLanguage = escapeHtmlProperty(claim.language) || 'en_US'; const claimLanguage = escapeHtmlProperty(claim.language) || 'en_US';
const claimThumbnail = escapeHtmlProperty(claim.thumbnail_url) || `${DOMAIN}/og.png`; const claimThumbnail = escapeHtmlProperty(claim.thumbnail_url) || `${URL}/og.png`;
const claimTitle = claim.channel && !isChannel ? `${title} from ${claim.channel} on LBRY.tv` : `${title} on LBRY.tv`; const claimTitle = claim.channel && !isChannel ? `${title} from ${claim.channel} on LBRY.tv` : `${title} on LBRY.tv`;
let head = ''; let head = '';
@ -65,7 +65,7 @@ function buildOgMetadata(uri, claim) {
head += `<meta property="og:type" content="website"/>`; head += `<meta property="og:type" content="website"/>`;
head += `<meta property="og:title" content="${claimTitle}"/>`; head += `<meta property="og:title" content="${claimTitle}"/>`;
// below should be canonical_url, but not provided by chainquery yet // below should be canonical_url, but not provided by chainquery yet
head += `<meta property="og:url" content="${DOMAIN}/${claim.name}:${claim.claim_id}"/>`; head += `<meta property="og:url" content="${URL}/${claim.name}:${claim.claim_id}"/>`;
if (claim.source_media_type && claim.source_media_type.startsWith('video/')) { if (claim.source_media_type && claim.source_media_type.startsWith('video/')) {
const videoUrl = generateStreamUrl(claim.name, claim.claim_id); const videoUrl = generateStreamUrl(claim.name, claim.claim_id);

View file

@ -1,5 +1,5 @@
// @flow // @flow
import { DOMAIN, DOMAIN_LOCAL, DOMAIN_DEV } from 'config'; import { URL, URL_LOCAL, URL_DEV } from 'config';
import * as PAGES from 'constants/pages'; import * as PAGES from 'constants/pages';
import * as ICONS from 'constants/icons'; import * as ICONS from 'constants/icons';
import React from 'react'; import React from 'react';
@ -12,9 +12,9 @@ import Tag from 'component/tag';
const L_KEY_CODE = 76; const L_KEY_CODE = 76;
const ESC_KEY_CODE = 27; const ESC_KEY_CODE = 27;
const WEB_DEV_PREFIX = `${DOMAIN_DEV}/`; const WEB_DEV_PREFIX = `${URL_DEV}/`;
const WEB_LOCAL_PREFIX = `${DOMAIN_LOCAL}/`; const WEB_LOCAL_PREFIX = `${URL_LOCAL}/`;
const WEB_PROD_PREFIX = `${DOMAIN}/`; const WEB_PROD_PREFIX = `${URL}/`;
const SEARCH_PREFIX = `$/${PAGES.SEARCH}q=`; const SEARCH_PREFIX = `$/${PAGES.SEARCH}q=`;
type Props = { type Props = {

View file

@ -1,5 +1,6 @@
// @flow // @flow
import { ipcRenderer } from 'electron'; import { ipcRenderer } from 'electron';
import { DOMAIN } from 'config';
let sessionPassword; let sessionPassword;
@ -11,7 +12,7 @@ function setCookie(name: string, value: string, days: number) {
expires = '; expires=' + date.toUTCString(); expires = '; expires=' + date.toUTCString();
} }
document.cookie = `${name}=${value || ''}${expires}; path=/;samesite=strict;`; document.cookie = `${name}=${value || ''}${expires}; domain=.${DOMAIN}; path=/; SameSite=Lax; Secure;`;
} }
function getCookie(name: string) { function getCookie(name: string) {