Javascript 带有用户数据的HTML脚本标记

Javascript 带有用户数据的HTML脚本标记,javascript,html,Javascript,Html,一些网站在html中插入带有基本用户登录数据的标记有什么好处? 以下是一个例子: <script> Shopify = {}; Shopify.shop = { settings: {"timezone":"(GMT+08:00) Kuala Lumpur","timezone_offset":480,"timezone_abbreviation":"MYT","tzinfo":"Asia\/Kuala_Lumpur","currency":"MYR","

一些网站在html中插入带有基本用户登录数据的
标记有什么好处? 以下是一个例子:

<script>
    Shopify = {};
    Shopify.shop = {
      settings: {"timezone":"(GMT+08:00) Kuala Lumpur","timezone_offset":480,"timezone_abbreviation":"MYT","tzinfo":"Asia\/Kuala_Lumpur","currency":"MYR","money_format":"\u003cspan class=money\u003eRM{{amount}}\u003c\/span\u003e","money_symbol":"RM","money_with_currency_format":"\u003cspan class=money\u003eRM{{amount}}\u003c\/span\u003e","created_at":"2014-08-15T12:19:28+08:00"},
      domain: "shop.myshop.com"
    };
    Shopify.currentUser = {"id":xxxx,"name":"Joe Doe","email":"joe@example.com","accountOwner":true,"accountAccess":"Account owner","permissions":["full"],"isEmployee":false};
  </script>

Shopify={};
Shopify.shop={
设置:{“时区”:(GMT+08:00)吉隆坡,“时区偏移量”:480,“时区缩写”:“MYT”,“tzinfo”:“亚洲\/吉隆坡”,“货币”:“MYR”,“货币格式”:“\u003cspan class=money\u003cspan class=money\u003eRM{amount}\u003c\/span\u003e”,“货币符号”:“RM”,“money\U与货币格式”:“\u003cspan class=money\u003cspan class=money\u003eRM{amount}\u003c\/span\u003e”:“2014-08-15T12:19:28+08:00”,
域名:“shop.myshop.com”
};
Shopify.currentUser={“id”:xxxx,“name”:“Joe Doe”,“email”:joe@example.com,“accountOwner”:true,“accountAccess”:“帐户所有者”,“权限”:[“完整”],“isEmployee”:false};

这些方法是如何工作的?谢谢!!

让我们看一下这个Javascript代码片段,看看它能做什么:

Shopify = {};
这定义了一个名为Shopify的空全局对象

在这里,名为shop的成员在对象Shopify中定义。 此成员也是一个对象(在花括号内定义),包含两个成员:

设置-这也是一个包含时区、时区偏移和其他一些属性的对象

域-这是一个包含域名的字符串

Shopify.currentUser = {"id":xxxx,"name":"Joe Doe","email":"joe@example.com","accountOwner":true,"accountAccess":"Account owner","permissions":["full"],"isEmployee":false};
最后一行在全局对象Shopify中定义了一个名为currentUser的成员,它也是一个包含一些属性的对象,其中包含有关(很可能)登录用户的信息

因此,基本上,整个Javascript代码片段用于生成一个名为Shopify的对象,该对象包含一些用户信息,这些信息可以由页面本身中的一些脚本访问


此代码很可能是由页面本身生成的,使用的服务器端脚本可能可以访问此信息。当页面中存在需要访问私有信息的Javascript代码时,这通常是实现此目的所采取的方法之一。

在上述示例中,所有数据都存储在全局变量(Shopify.shop)是与用户相关的信息。该信息是请求始终需要的信息类型,否则它将需要再次重新执行逻辑以查找该信息是什么

查找用户的时区有点复杂。因为我们在客户端只有偏移量来查找实时时区,而问题是某些时区共享相同的偏移量。在排序中,查找用户的时区有点复杂。因此,我们可以将此类信息存储在服务器端会话对象中的以太中或任何全局变量中所以在换人时间上我们可以很容易的得到

但在源代码中包含一些客户端信息(如上述代码)是一种不好的做法。为了安全起见,我们应该将所有信息保存在会话对象中,以解决易受攻击的问题


Miki Berkovich已经给出了关于代码的所有描述,所以我不想在这里再次描述。

在JS代码的其余部分搜索
Shopify.shop
Shopify.currentUser
。这将向您展示如何使用它。这样脚本中的全局变量就可以从其他脚本codeShopi中使用fy已声明为全局变量,因此任何脚本都可以访问它。它用于存储数据。@AdrianSync只在一个脚本中提到了Shopify.shop,但它没有显示它们如何初始化数据并注入html。
Shopify.currentUser = {"id":xxxx,"name":"Joe Doe","email":"joe@example.com","accountOwner":true,"accountAccess":"Account owner","permissions":["full"],"isEmployee":false};