sencha touch 2-使用摘要身份验证用户名和密码时,javascript中出现错误
sencha touch 2 - getting error in the javascript ,when authenticate the username and password using digest authentication
这里我想验证用户名和密码。这里我在控制台中成功地获得了用户名和密码(valuesUser)。我尝试了以下代码,
Ext.define('Form.controller.Digestauth', {
extend: 'Ext.app.Controller',
requires:['RegisterForm.view.Login','RegisterForm.view.Main'],
config:{
refs:{
loginform: '#loginform'
},
control: {
'#loginButton': {
tap: function(){
var valuesUser = this.getLoginform().getValues();
console.log(valuesUser);
console.log(valuesUser.userName);
$.Class("pl.arrowgroup.DigestAuthentication",{
MAX_ATTEMPTS : 1,
AUTHORIZATION_HEADER : "Authorization",
WWW_AUTHENTICATE_HEADER : 'WWW-Authenticate',
NC : "00000001", //currently nc value is fixed it is not incremented
HTTP_METHOD : "GET",
/**
* settings json:
* - onSuccess - on success callback
* - onFailure - on failure callback
* - username - user name
* - password - user password
* - cnonce - client nonce
*/
init : function(settings) {
this.settings = settings;
},
setCredentials: function(username, password){
this.settings.username = valuesUser.username;
this.settings.password = valuesUser.userPassword;
},
call : function(uri){
this.attempts = 0;
this.invokeCall(uri);
},
invokeCall: function(uri,authorizationHeader){
var digestAuth = this;
$.ajax({
url: uri,
uri:'http://localhost/sencha2011/RegisterForm/newuser.php?action=check',
type: this.HTTP_METHOD,
beforeSend: function(request){
if(typeof authorizationHeader != 'undefined'){
request.setRequestHeader(digestAuth.AUTHORIZATION_HEADER, authorizationHeader);
}
},
success: function(response) {
digestAuth.settings.onSuccess(response);
},
error: function(response) {
if(digestAuth.attempts == digestAuth.MAX_ATTEMPTS){
digestAuth.settings.onFailure(response);
return;
}
var paramParser = new pl.arrowgroup.HeaderParamsParser(response.getResponseHeader(digestAuth.WWW_AUTHENTICATE_HEADER));
var nonce = paramParser.getParam("nonce");
var realm = paramParser.getParam("realm");
var qop = paramParser.getParam("qop");
var response = digestAuth.calculateResponse(uri, nonce, realm, qop);
var authorizationHeaderValue = digestAuth.generateAuthorizationHeader(paramParser.headerValue, response, uri);
digestAuth.attempts++;
digestAuth.invokeCall(uri, authorizationHeaderValue);
}
});
},
calculateResponse : function(uri, nonce, realm, qop){
var a2 = this.HTTP_METHOD + ":" + uri;
var a2Md5 = hex_md5(a2);
var a1Md5 = hex_md5(this.settings.username + ":" + realm + ":" + this.settings.password);
var digest = a1Md5 + ":" + nonce + ":" + this.NC + ":" + this.settings.cnonce + ":" + qop + ":" +a2Md5;
return hex_md5(digest);
},
generateAuthorizationHeader : function(wwwAuthenticationHeader, response, uri){
return wwwAuthenticationHeader+', username="'+this.settings.username+'", uri="'+
uri+'", response="'+response+'", nc='+
this.NC+', cnonce="'+this.settings.cnonce+'"';
}
});
$.Class("pl.arrowgroup.HeaderParamsParser",{
init : function(headerValue) {
this.headerValue = headerValue;
this.headerParams = this.headerValue.split(",");
},
getParam: function(paramName){
var paramVal = null;
$.each(this.headerParams, function(index, value){
if(value.indexOf(paramName)>0){
paramVal = value.split(paramName+"=")[1];
paramVal = paramVal.substring(1, paramVal.length-1);
}
});
return paramVal;
}
});
}
}
}
}
});
要编写上述代码,我需要"http://marcin-michalski.pl/2012/11/01/javascript-digest-authentication-restful-webservice-spring-security-javascript-ajax/"链接digest-auth.js文件
我得到的错误是:Uncaught ReferenceError:$没有定义。有人能帮我做这件事吗?提前感谢
您需要包含jQuery。它定义了一个全局$
变量,这就是您的错误所抱怨的。可能来自对$.ajax
的调用。
查看此处的"入门"部分:http://docs.jquery.com/
相关文章:
- 使用密码对话框Javascript请求帮助
- JavaScript生成html格式的密码
- 想要使用 JavaScript 验证用户名和密码
- javascript表单验证-数值和密码
- 如何在javascript中使用ajax post更改密码
- 应该如何将密码从纯html/javascript应用程序发送到php页面
- 密码输入启动 JavaScript
- 完成将调用IE的密码框函数从VBScript转换为Javascript
- 你如何处理Javascript中Caesar密码的转变
- javascript 的密码验证
- Javascript 密码不应包含用户的帐户名或用户全名中超过两个连续字符的部分
- 创建密码regex(javascript)
- 密码输入不起作用的Javascript模糊
- 想要将密码类型存储在 JavaScript 变量中
- 使用Cookie通过Javascript设置用户名和密码
- 表单提交时密码不匹配(JavaScript)
- 正则表达式的密码(Javascript)
- Internet Explorer 7/8:'中的密码javascript错误:'预期
- 用于验证密码 JavaScript 的正则表达式
- 模式密码javascript