1
我希望有人能幫助我。 我有一個使用JSON Web服務實現的API。我想實現登錄。用戶已創建,我需要登錄用戶。那是當我輸入用戶名和密碼時,它必須登錄用戶。在Titanium中使用JSON實現登錄
我已閱讀tutsplus教程,但我無法驗證用戶身份。誰能幫我嗎。
這裏是我使用的代碼:
// create tab group
var tabGroup = Titanium.UI.createTabGroup();
var win1 = Titanium.UI.createWindow({
title:'Login',
backgroundColor:'#fff'
});
var username = Ti.UI.createTextField({
top:'10%',
borderRadius:3,
hintText:'username',
keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
width:'80%',
height:'auto',
left:'10%',
right:'10%',
touchEnabled: true,
});
win1.add(username);
var pass = Ti.UI.createTextField({
top:'30%',
borderRadius:3,
hintText:'password',
keyboardType:Titanium.UI.KEYBOARD_DEFAULT,
width:'80%',
height:'auto',
left:'10%',
right:'10%',
touchEnabled: true,
passwordMask: true
});
win1.add(pass);
var loginBtn = Titanium.UI.createButton({
title:'Login',
top:'50%',
width:'60%',
height:'15%',
borderRadius:1,
font:{fontFamily:'Arial',fontWeight:'bold',fontSize:14}
});
win1.add(loginBtn);
var url = 'http://qudova.com/api.php?function=AuthenticateUser&[email protected]&p=qudovatest';
var json;
var loginReq = Titanium.Network.createHTTPClient();
loginBtn.addEventListener('click',function(e)
{
if (username.value != '' && pass.value != '')
{
// Here I will get the Token (asdfasdf....)
loginReq.open("GET",url);
authstr = 'Basic ' +Titanium.Utils.base64encode(username.value +':' +pass.value);
loginReq.setRequestHeader('Authorization', authstr);
loginReq.send();
}
else
{
alert("Username/Password are required");
}
});
loginReq.onload = function()
{
var jsonObject = JSON.parse(this.responseText);
// Here I have made a check if the Token is returned successfully it will alert the user that he authenticated
if (jsonObject.Token == "asdfadsfasdfadsf")
{
alert("Authenticated");
}
else
{
alert("response.message");
}
};
win1.open();
在此先感謝。我的概念是否清晰?
在您的代碼中,您使用了3(!!!)種方式進行身份驗證。 1.純文本證書作爲URL中的GET參數。 2.從字段生成的基本身份驗證標題和3.從字段生成的POST params(普通)。哪一個應該工作/在後端實現?當我複製你的網址並將其粘貼到瀏覽器中時,我會得到你期望的答案(asdfasdf ...)而無需特別登錄。請證明你的概念並澄清你真正想做的事! – 2013-03-17 21:50:58
感謝您的回覆, – 2013-03-18 06:52:39
我想基於'setRequestHeader'參數驗證用戶身份。通過這種方式進行身份驗證時,將返回令牌(asdfasdf ...),並且我可以對令牌進行檢查以驗證身份驗證並提醒用戶他已驗證身份。我編輯了我的代碼。 – 2013-03-18 07:00:31