Php 将javascript文件置于用户身份验证之后的最佳实践?
我有一个web应用程序,其中大部分功能都在一个javascript文件中,我将介绍该应用程序的专业版本,在该版本中,注册用户可以访问更多功能 同样,额外的功能只是javascript文件中的额外功能 我计划做的是:Php 将javascript文件置于用户身份验证之后的最佳实践?,php,javascript,security,authentication,Php,Javascript,Security,Authentication,我有一个web应用程序,其中大部分功能都在一个javascript文件中,我将介绍该应用程序的专业版本,在该版本中,注册用户可以访问更多功能 同样,额外的功能只是javascript文件中的额外功能 我计划做的是: -如果用户已登录,请链接pro_script.js, -或者,如果用户未登录,则链接到normal_script.js, 在页面的页眉处,通过使用php进行用户身份验证 我想知道这是否是处理这种情况的最好方法 我担心pro_script.js可以在javascripts文件夹下访问,
-如果用户已登录,请链接pro_script.js,
-或者,如果用户未登录,则链接到normal_script.js,
在页面的页眉处,通过使用php进行用户身份验证 我想知道这是否是处理这种情况的最好方法
我担心pro_script.js可以在javascripts文件夹下访问,并且可以编写一个脚本或插件来加载pro_script.js而不是普通的_script.js。您可以让HTML调用
my_script.php
而不是my_script.js。此PHP文件将根据用户是否登录的状态简单地输出您的JS。您可以将pro_script.JS隐藏在PHP脚本后面-它将检查用户的帐户,如果用户是“premium”,则输出pro_script.JS的内容,否则-空字符串。别忘了设置正确的标题(内容类型和缓存)这确实是@Adnan的想法,但我的回复对于评论来说太复杂了
您的my_script.php
应该如下所示:
<?php
session_start();
header("Content-type: application/x-javascript";);
if (!empty($_SESSION['PRO_USER'])) {
echo file_get_contents("js/pro_script.js");
} else {
echo file_get_contents("js/normal_script.js");
}
exit;
?>
如何处理经过身份验证的用户?会话、cookie、querystring?好主意,我做了一个快速的研究,发现用php输出JS需要我逐行回显脚本,转义引号并为每一行添加\n。如果是这样的话,我的javascript文件很长一段时间都无法做到这一点,而且如果我做到了,那么将来在javascript代码上工作将非常困难。@fahrio:不一定。PHP可以嵌入到任何基于文本的文件中。PHP解析器将只在
块上启动,因此您可以拥有一个纯.js文件,顶部只有少量PHP用于身份验证。不需要逐行回显,只需在完成代码后退出php模式(?>
)。