[英]redirect html page if not login
我的網頁上有簡單的登錄表單。 它使用javascript登錄用戶,工作正常。 問題是用戶輸入的登陸頁面url直接進入地址欄,他可以直接訪問頁面而無需登錄。 如果他沒有登錄,我想將他重定向到登錄頁面。 以下是loding和目標頁面的鏈接。
登錄: http : //samdesign.comli.com/protected/index.html
目標: http : //samdesign.comli.com/protected/user-soft.html
這里使用的腳本如下
<form>
<table align=center>
<tr>
<td>Username:</td>
<td><input type="text" name="username" style="background:#bfbfbf;color:#212121;border-color:#212121;" onFocus="this.style.background = '#ffffff';" onBlur="this.style.background = '#bfbfbf';"></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="password" style="background:#bfbfbf;color:#212121;border-color:#212121;" onFocus="this.style.background = '#ffffff';" onBlur="this.style.background = '#bfbfbf';"></td>
</tr>
<tr>
<td></td>
<td align=right><input type="button" value="Login" onClick="Login(this.form);" style="background:#bfbfbf;color:#000000;border-color:#212121;" onMouseOver="this.style.color = '#404040';" onMouseOut="this.style.color = '#000000';" onFocusr="this.style.color = '#404040';" onBlur="this.style.color = '#000000';"></td>
</tr>
</table>
</form>
腳本就是這個
function Login(form) {
username = new Array("numair","sam","u3","u4","u5","u6","u7","u8","u9","u10","temporary");
password = new Array("nk1994","sf1993","p3","p4","p5","p6","p7","p8","p9","p10","user");
page = "/protected/user-soft.html";
if (form.username.value == username[0] && form.password.value == password[0] || form.username.value == username[1] && form.password.value == password[1] || form.username.value == username[2] && form.password.value == password[2] || form.username.value == username[3] && form.password.value == password[3] || form.username.value == username[4] && form.password.value == password[4] || form.username.value == username[5] && form.password.value == password[5] || form.username.value == username[6] && form.password.value == password[6] || form.username.value == username[7] && form.password.value == password[7] || form.username.value == username[8] && form.password.value == password[8] || form.username.value == username[9] && form.password.value == password[9] || form.username.value == username[10] && form.password.value == password[10]) {
self.location.href = page;
}
else {
alert("Either the username or password you entered is incorrect.\nPlease try again.");
form.username.focus();
}
return true;
}
任何人都可以幫助解決問題嗎?
// Put this in your login function, just before the redirect
var sessionTimeout = 1; //hours
var loginDuration = new Date();
loginDuration.setTime(loginDuration.getTime()+(sessionTimeout*60*60*1000));
document.cookie = "CrewCentreSession=Valid; "+loginDuration.toGMTString()+"; path=/";
// Put this at the top of index page
if (document.cookie.indexOf("CrewCentreSession=Valid") == -1) {
location.href = "/Login.html";
}
這不是正確的身份驗證方式,您必須在服務器端保留身份驗證邏輯,您可以在服務器上使用Node.js/Ruby-on-Rails(ROR)/JSP/ASP.NET
(等等您想要的) -結束。
為了使您的頁面安全,您必須在服務器端過濾之前添加(這將檢查用戶的會話)。
JavaScript身份驗證?? 這不安全。 所有身份驗證都應在服務器端完成。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.