我正在构建一个将从JavaScript客户端使用的PHP REST API,并且在解决如何实现身份验证和访问方面存在一些问题.将有多个应用程序将使用我将开发的JavaScript库来与我的应用程序交谈和交互.我将为每个人提供API密钥,因此这不是问题.
我开始感到困惑的地方是如何让这些网站上的用户对我的应用程序进行身份验证.让这个外部网站存储我的用户的帐户和密码信息似乎是一个坏主意; 所以,我想我应该让我的JavaScript库包含一个登录小部件,询问用户的应用程序的帐户信息.
如果身份验证成功,因为我正在使用REST API,我需要将检索到的令牌存储在客户端cookie或其他内容中,以便用户无需再次在每个页面上登录我的应用程序.外部网站.但是,如果用户退出外部站点,然后另一个用户从同一浏览器登录,会发生什么?就我的JavaScript库而言,旧用户仍然会登录到我的应用程序,因为cookie /令牌尚未过期 - 如何在前一个用户的会话结束时清除我的cookie?或者,我完全偏离正确的道路吗?
所以,我认为这个过程会是这样的:
var token; // Some hashed string containing an expiration date and user id
var apiKey = '123abc';
// Read the cookie and check if it already contains the token
token = readCookie('token');
if (token == '') {
// get username and password from user through some prompt
var request_data = {apiKey: apiKey, user: username, pass: password};
$.post('https://service.com/api/user/login', request_data, function(data) {
token = data;
document.cookie = "token=" + token;
}); …Run Code Online (Sandbox Code Playgroud) 我正在尝试将Jenkins设置为从我的SVN仓库进行轮询,并在检测到提交已经进入时启动新的构建.我已经使轮询部分工作,但是建筑物过于热心,现在它正在重建每次民意调查 - 是否有任何变化.SCM-polling.log文件读取:
Started on Aug 31, 2011 9:49:51 AM
Workspace doesn't contain svn://10.64.147.118:/svn/repos/conttest/csa_test/trunk. Need a new build.
Done. Took 10 ms
Changes found
Run Code Online (Sandbox Code Playgroud)
Jenkins的控制台输出如下所示:
Started by an SCM change
Checking out a fresh workspace because the workspace is not svn://10.64.147.118:/svn/repos/conttest/csa_test/trunk
Cleaning workspace /var/lib/jenkins/jobs/CSATester/workspace
Checking out svn://10.64.147.118:/svn/repos/conttest/csa_test/trunk
....
no revision recorded for svn://10.64.147.118:/svn/repos/conttest/csa_test/trunk in the previous build
No changesets found for this build
Run Code Online (Sandbox Code Playgroud)
repo url设置为svn://10.64.147.118:/ svn/repos/conttest/trunk,我告诉Jenkins删除未版本控制的文件,然后在构建之前更新.工作空间肯定包含repo中的文件,每次构建都会成功.
关于可能导致这种情况的任何想法?
我有一个大表单,允许用户输入许多不同的字段,当它们完成后,我需要将表单的内容发送到服务器,处理它,然后吐出一个包含该文件的.txt文件.他们下载的处理结果.现在,除了下载部分,我都已经完成了设置.在对jQuery .post()的响应上设置标题似乎不起作用.有没有其他方法比做某种iframe技巧使这项工作(一个JavaScript/jQuery下载文件通过POST与JSON数据)?
我再次将数据发送到服务器,处理它,然后想用标题回显结果以提示下载对话框.我不想将结果写入磁盘,提供下载,然后从服务器中删除该文件.
我有一些代码,用户可以选择要运行的比较类型,以及要比较的值.我很想知道Javascript中是否有任何方法可以将用户提供的比较值转换为实际比较,这样我就可以执行以下操作:
if (user_val user_comparison other_val) {
do_something();
}
Run Code Online (Sandbox Code Playgroud)
而不必像以下那样做:
if (user_comparison = '<') {
if (user_val < other_val) {
do_something();
}
else if (user_comparison = '<=') {
if (user_val <= other_val) {
do_something();
}
....etc
Run Code Online (Sandbox Code Playgroud)
请注意,如果匹配任何比较,将执行相同的代码.