利用Cookie做一个简单的登录和注销

利用Cookie做一个简单的登录和注销

创建两个HTML文件------Login.html,Index.html

#Login.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>登录页</title>
    <script>
        function check() {
            var account = fm1.account.value;//获取账号值
            var password = fm1.password.value;//获取密码
            if (account == "") {
                showMsg("请输入用户名");
            }
            else {
                if (password == "") {
                    showMsg("请输入密码");
                }
                else {
                    if (account == "myname") {
                        if (password == "123") {
                            setCookie("username", account,30);//调用设置cookie的方法
                            window.location.href = "Index.html";//跳转
                        }
                        else {
                            showMsg("密码错误");
                        }
                    }
                    else {
                        showMsg("用户名错误");
                    }
                }
            }
        }
        //显示提示信息函数
        function showMsg(msg) {
            document.getElementById("Mesg").innerHTML = msg;
        }
		//设置cookie函数
        function setCookie(cname, cvalue, exdays) {
            var d = new Date();
            d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
            var expires = "expires=" + d.toGMTString();
            document.cookie = cname + "=" + cvalue + "; " + expires;
        }
    </script>

</head>
<body>
    <button type="button" onclick='showMsg("Tag")'>点击</button>
    <div>请输入你的用户名和密码</div>

    <form action="" name="fm1">
        <input type="text" id="account" name="account" placeholder="输入账号">
        <br />
        <input type="password" id="password" name="password" placeholder="输入密码" />
        <div>
            <input type="button" value="登录" onclick="check()">
            <input type="reset" value="重置">
        </div>

    </form>
    <div id="Mesg"></div>
</body>
</html>

显示成功页面
#Index.html

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title>首页</title>
    <script>
    	//消除cookie的函数
        function logout() {
            document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT";
            location.reload();//刷新页面
        }
		//获取cookie的函数
        function getCookie(cname) {
            var name = cname + "=";
            var ca = document.cookie.split(';');
            for (var i = 0; i < ca.length; i++) {
                var c = ca[i].trim();
                if (c.indexOf(name) == 0) { return c.substring(name.length, c.length); }
            }
            return "";
        }
        //检测cookie函数
        function checkCookie() {
            var user = getCookie("username");//获取cookie
            if (user.toString() == "") {
				//若用户为空的事件
            }
            else {
                document.getElementById("a1").remove();//删除id为a1的标签
                document.getElementById("mine").innerHTML = user;//将用户插入到块里面
            }
        }  
    </script>
</head>
<body onload="checkCookie()">
    <center><h1>INDEX</h1></center>
    <div>
        欢迎!
        <text id="mine"></text>
        <a id="a1" href="Login.html">请先登录</a>
        <button type="button" onclick="logout()">注销</button>
    </div>
</body>
</html>
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
假设我们要设计一个社交网络应用程序,用户需要先进行注册,然后登录才能使用该应用程序。为了方便用户,我们决定使用统一认证服务进行鉴权。 以下是该系统的样例: 1. 用户注册 用户在注册页面输入账号、密码、邮箱等信息,点击注册按钮。系统向统一认证服务发送注册请求,统一认证服务验证用户信息是否合法,若合法则将用户信息保存到数据库中,并返回注册成功信息给应用程序。 2. 用户登录 用户在登录页面输入账号、密码,点击登录按钮。系统向统一认证服务发送登录请求,统一认证服务验证用户信息是否正确,若正确则返回登录成功信息,同时生成一个令牌(token)并保存到数据库中,将该令牌返回给应用程序。应用程序将该令牌保存到用户的浏览器cookie中。 3. 访问受保护的页面 用户访问某个受保护的页面时,应用程序会先检查用户的浏览器cookie中是否有令牌。如果有,则向统一认证服务发送令牌验证请求,统一认证服务验证令牌是否有效,若有效则返回用户信息。应用程序根据用户信息判断用户是否有权限访问该页面,若有则返回页面内容给用户,若没有则返回错误信息。 4. 退出登录 用户点击退出登录按钮后,应用程序会清除用户浏览器cookie中保存的令牌。同时,应用程序向统一认证服务发送注销请求,统一认证服务将该令牌标记为无效。 以上就是一个简单利用统一认证服务鉴权的系统样例。该系统可以通过统一认证服务实现单点登录,用户只需要在注册或登录时输入一次账号密码即可在多个应用程序中使用。同时,该系统也可以保护受保护的资源,只有经过鉴权的用户才能访问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值