Socket
Socket
Sign inDemoInstall

@alicloud/cookie

Package Overview
Dependencies
Maintainers
0
Versions
123
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@alicloud/cookie - npm Package Compare versions

Comparing version 1.6.3-beta.1 to 1.7.0-beta.1

16

build/cjs/util/can-set-cookies.js

@@ -9,4 +9,5 @@ "use strict";

var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
var _setCookie = _interopRequireDefault(require("./set-cookie"));
var _setCookie2 = require("./set-cookie");
var _getCookie = _interopRequireDefault(require("./get-cookie"));
var _deleteCookie = _interopRequireDefault(require("./delete-cookie"));
function generateRandomKeyAndValue() {

@@ -37,3 +38,3 @@ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;

tempCookieValue = _generateRandomKeyAnd2[1];
(0, _setCookie.default)(tempCookieKey, tempCookieValue, {
(0, _setCookie2._setCookie)(tempCookieKey, tempCookieValue, {
days: 0,

@@ -43,5 +44,12 @@ // Session Cookie

// 必须 HTTPS
sameSite: 'None'
sameSite: 'None',
partitioned: false
});
return (0, _getCookie.default)(tempCookieKey) === tempCookieValue;
// 看下能不能写入,可以的话记得清理掉
var canSet = (0, _getCookie.default)(tempCookieKey) === tempCookieValue;
if (canSet) {
(0, _deleteCookie.default)(tempCookieKey);
}
return canSet;
}

@@ -13,2 +13,3 @@ "use strict";

var _getDomain = _interopRequireDefault(require("./get-domain"));
var _shouldUseChips = _interopRequireDefault(require("./should-use-chips"));
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }

@@ -72,8 +73,14 @@ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }

try {
// xxx: 先强行干掉所有分区 Cookie
(0, _deleteCookie.default)(name, _objectSpread(_objectSpread({}, options), {}, {
partitioned: true
}));
// xxx: 先只设置非分区 Cookie
_setCookie(name, value, options);
// 在特定的条件下自动设定 Partitioned Cookie
if ((0, _shouldUseChips.default)()) {
// 先删除非 Partitioned 值,然后再设定 Partitioned 值
(0, _deleteCookie.default)(name);
_setCookie(name, value, _objectSpread(_objectSpread({}, options), {}, {
partitioned: true
}));
} else {
_setCookie(name, value, _objectSpread(_objectSpread({}, options), {}, {
partitioned: false
}));
}
} catch (e) {

@@ -80,0 +87,0 @@ // 静默处理

"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {

@@ -8,2 +9,5 @@ value: true

var _const = require("../const");
var _canSetCookies = _interopRequireDefault(require("./can-set-cookies"));
// 在模块执行之初就先判断能否写 Cookie,避免在写入的时候反复判断
var canSet = (0, _canSetCookies.default)();
function isChromeOrEdgeVersionAtLeast(version) {

@@ -30,5 +34,6 @@ var userAgent = window.navigator.userAgent;

// 条件 3:被 iframe 了
var isIframe = window.top !== window.self;
return supportable && isHttps && isIframe;
// 条件 3:经尝试,无法设置非 Partitioned Cookie
// 而非之前认为的在 iframe 中
var canNotSet = !canSet;
return supportable && isHttps && canNotSet;
}
import _slicedToArray from "@babel/runtime/helpers/esm/slicedToArray";
import setCookie from './set-cookie';
import { _setCookie } from './set-cookie';
import getCookie from './get-cookie';
import deleteCookie from './delete-cookie';
function generateRandomKeyAndValue() {

@@ -29,3 +30,3 @@ var length = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;

tempCookieValue = _generateRandomKeyAnd2[1];
setCookie(tempCookieKey, tempCookieValue, {
_setCookie(tempCookieKey, tempCookieValue, {
days: 0,

@@ -35,5 +36,12 @@ // Session Cookie

// 必须 HTTPS
sameSite: 'None'
sameSite: 'None',
partitioned: false
});
return getCookie(tempCookieKey) === tempCookieValue;
// 看下能不能写入,可以的话记得清理掉
var canSet = getCookie(tempCookieKey) === tempCookieValue;
if (canSet) {
deleteCookie(tempCookieKey);
}
return canSet;
}

@@ -7,2 +7,3 @@ import _defineProperty from "@babel/runtime/helpers/esm/defineProperty";

import getDomain from './get-domain';
import shouldUseChips from './should-use-chips';

@@ -65,8 +66,14 @@ /**

try {
// xxx: 先强行干掉所有分区 Cookie
deleteCookie(name, _objectSpread(_objectSpread({}, options), {}, {
partitioned: true
}));
// xxx: 先只设置非分区 Cookie
_setCookie(name, value, options);
// 在特定的条件下自动设定 Partitioned Cookie
if (shouldUseChips()) {
// 先删除非 Partitioned 值,然后再设定 Partitioned 值
deleteCookie(name);
_setCookie(name, value, _objectSpread(_objectSpread({}, options), {}, {
partitioned: true
}));
} else {
_setCookie(name, value, _objectSpread(_objectSpread({}, options), {}, {
partitioned: false
}));
}
} catch (e) {

@@ -73,0 +80,0 @@ // 静默处理

import { LOWEST_VERSION_THAT_SUPPORTS_CHIPS } from '../const';
import canSetCookies from './can-set-cookies';
// 在模块执行之初就先判断能否写 Cookie,避免在写入的时候反复判断
var canSet = canSetCookies();
function isChromeOrEdgeVersionAtLeast(version) {

@@ -23,5 +27,6 @@ var userAgent = window.navigator.userAgent;

// 条件 3:被 iframe 了
var isIframe = window.top !== window.self;
return supportable && isHttps && isIframe;
// 条件 3:经尝试,无法设置非 Partitioned Cookie
// 而非之前认为的在 iframe 中
var canNotSet = !canSet;
return supportable && isHttps && canNotSet;
}
{
"name": "@alicloud/cookie",
"version": "1.6.3-beta.1",
"version": "1.7.0-beta.1",
"description": "ConsoleBase Cookie",

@@ -38,3 +38,4 @@ "license": "MIT",

},
"gitHead": "e3daf0b177915f37e8beae4ecee204d8c62f9507"
}
"gitHead": "e3daf0b177915f37e8beae4ecee204d8c62f9507",
"repository": "git@gitlab.alibaba-inc.com:aliyun/console-base.git"
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc