Sencha Architect 4 - ExtJS 6.5 -> Dreamfactory 2.9 身份验证会话令牌
Sencha Architect 4 - ExtJS 6.5 -> Dreamfactory 2.9 Authentication Session Token
我有点卡住了,我想征求你的意见,我正在尝试设置登录 window // 在 Sencha Architect 中使用 DreamFactory 进行身份验证,但我几乎是一个初学者。
我当前的代码是:
var username = Ext.getCmp('usr').getValue(),
password = Ext.getCmp('pwd').getValue();
Ext.Ajax.defaultHeaders = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json'
};
Ext.Ajax.request({
url: 'http://dreamfactoryaddy:8080/api/v2/user/session',
withCredentials: true,
email: username,
password: password,
cors: true,
success: function(response) {
var obj = Ext.decode(response.responseText);
Ext.Ajax.defaultHeaders = {
'X-DreamFactory-Api-Key' :
'xyz', 'Content-Type' : 'application/json', 'X-DreamFactory-Session-
Token': obj.session_token
};
console.log(obj);
},
failure: function(response) {
console.log(response.responseText);
}
});
我收到此错误:
{"error":{"code":401,"context":null,"message":"There is no valid session for the current request.","status_code":401}}
你能给我一些如何正确处理会话的建议吗?
更新 2:
var username = Ext.getCmp('usr').getValue(),
password = Ext.getCmp('pwd').getValue(),
headers = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json'
};
Ext.Ajax.setDefaultHeaders(headers);
Ext.Ajax.request({
url: 'http://chalton.swiftmedia.ca:8080/api/v2/user/session',
withCredentials: true,
jsonData: {
"email" : username,
"password" : password
},
cors: true,
success: function(response) {
var obj = Ext.util.JSON.decode(response.responseText),
newheaders = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json',
'X-DreamFactory-Session-Token': obj.session_token
};
console.log(response.responseText);
Ext.Ajax.setDefaultHeaders(newheaders);
},
failure: function(response) {
console.log(response.responseText);
}
});
},
如果您检查浏览器控制台,您可能会发现 defaultHeaders
没有正确应用于您的 ajax 请求。
我与任意其他 headers 有完全相同的问题,我想作为默认 headers。 Ext.Ajax.defaultHeaders = x
行不通,Ext.Ajax.setDefaultHeaders(x)
行。
我有点卡住了,我想征求你的意见,我正在尝试设置登录 window // 在 Sencha Architect 中使用 DreamFactory 进行身份验证,但我几乎是一个初学者。
我当前的代码是:
var username = Ext.getCmp('usr').getValue(),
password = Ext.getCmp('pwd').getValue();
Ext.Ajax.defaultHeaders = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json'
};
Ext.Ajax.request({
url: 'http://dreamfactoryaddy:8080/api/v2/user/session',
withCredentials: true,
email: username,
password: password,
cors: true,
success: function(response) {
var obj = Ext.decode(response.responseText);
Ext.Ajax.defaultHeaders = {
'X-DreamFactory-Api-Key' :
'xyz', 'Content-Type' : 'application/json', 'X-DreamFactory-Session-
Token': obj.session_token
};
console.log(obj);
},
failure: function(response) {
console.log(response.responseText);
}
});
我收到此错误:
{"error":{"code":401,"context":null,"message":"There is no valid session for the current request.","status_code":401}}
你能给我一些如何正确处理会话的建议吗?
更新 2:
var username = Ext.getCmp('usr').getValue(),
password = Ext.getCmp('pwd').getValue(),
headers = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json'
};
Ext.Ajax.setDefaultHeaders(headers);
Ext.Ajax.request({
url: 'http://chalton.swiftmedia.ca:8080/api/v2/user/session',
withCredentials: true,
jsonData: {
"email" : username,
"password" : password
},
cors: true,
success: function(response) {
var obj = Ext.util.JSON.decode(response.responseText),
newheaders = {
'X-DreamFactory-Api-Key' : 'xyz',
'Content-Type' : 'application/json',
'X-DreamFactory-Session-Token': obj.session_token
};
console.log(response.responseText);
Ext.Ajax.setDefaultHeaders(newheaders);
},
failure: function(response) {
console.log(response.responseText);
}
});
},
如果您检查浏览器控制台,您可能会发现 defaultHeaders
没有正确应用于您的 ajax 请求。
我与任意其他 headers 有完全相同的问题,我想作为默认 headers。 Ext.Ajax.defaultHeaders = x
行不通,Ext.Ajax.setDefaultHeaders(x)
行。