关闭

用户登录记住密码功能(记住登陆状态),下次不需要重新登录,注意安全问题!实现原理

标签: 密码一周存储cookie安全
5893人阅读 评论(5) 收藏 举报
分类:
做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。
本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的方法有N多种。
整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆等这个选项的时候,则在用户成功登陆操作完成之后,
存储一个实现自动登录的cookie的数据到数据库的用户表里面,作为下次自动登录时验证用。验证通过则自动登录,否则需要输入用户名,密码进行登录。
保存的这个cookie值则可以取一个随机码。
具体示例代码如下:
$username=trim($_POST['username']);
$password=md5(trim($_POST['password']));
$ref_url=$_GET['req_url'];
$remember=$_POST['remember'];//是否自动登录标示
$err_msg='';
if($username==''||$password==''){
 $err_msg="用户名和密码都不能为空";
}else{
 $row=getUserInfo($username,$password);
 if(empty($row)){
  $err_msg="用户名和密码都不正确";
 }else{
  $_SESSION['user_info']=$row;
  if(!empty($remember)){//如果用户选择了,记录登录状态就把用户名和加了密的密码放到cookie里面
   setcookie("username",$username,time()+3600*24*365);
   setcookie("password",$password,time()+3600*24*365);
  }
  if(strpos($ref_url,"login.php")===false){
   header("location:".$ref_url);
  }else{
   header("location:main_user.php");
  }
 }
}

另外在访问网站的每个页面时,都要先进行一遍如下函数的检查。

//检查用户是否登录
function checklogin(){
 if(empty($_SESSION['user_info'])){//检查一下session是不是为空
  if(empty($_COOKIE['username'])||empty($_COOKIE['password'])){//如果session为空,并且用户没有选择记录登录状
   header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);//转到登录页面,记录请求的url,登录后跳转过去,用户体验好。
  }else{//用户选择了记住登录状态
   $user=getUserInfo($_COOKIE['username'],$_COOKIE['password']);//去取用户的个人资料
  if(empty($user)){//用户名密码不对没到取到信息,转到登录页面
   header("location:login.php?req_url=".$_SERVER['REQUEST_URI']);
  }else{
   $_SESSION['user_info']=$user;//用户名和密码对了,把用户的个人资料放到session里面
  }
  }
 }
}


0
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

记住登录状态的安全做法

永久登录指的是在浏览器会话间进行持续验证的机制。换句话说,今天已登录的用户明天依然是处于登录状态,即使在多次访问之间的用户会话过期的情况下也是这样。永久登录的存在降低了你的验证机制的安全性,但它增加了...
  • cuijinquan
  • cuijinquan
  • 2014-01-16 10:09
  • 2401

登录之记住用户与自动登录

如题,大家在使用各种网站时,为了更好的用户体验,网站往往会提供这两种功能之一,以便下次登录方便。                    今天要讲述的是用java操作cookie来实现这两个...
  • ghsau
  • ghsau
  • 2012-09-05 23:42
  • 6297

app的登录认证与安全

一、登录机制 粗略地分析, 登录机制主要分为登录验证、登录保持、登出三个部分。登录验证是指客户端提供用户名和密码,向服务器提出登录请求,服务器判断客户端是否可以登录并向客户端确认。 登录认保持是指客...
  • m372897500
  • m372897500
  • 2016-03-16 14:47
  • 7308

在登录页面如何实现记住用户名和密码这个功能

在登录页面如何实现记住用户名和密码这个功能? 思路:使用cookie的方法将用户名和密码保存到本地电脑上,再设置一个cookie的有效时间就行了 安全性怎么破? 加密数据? -------------...
  • sixteen_cicle
  • sixteen_cicle
  • 2016-08-15 11:30
  • 11364

用户登录记住密码功能(记住登陆状态),下次不需要重新登录,注意安全问题!实现原理

做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。 本篇文章将简单说一下如何使用php实现该需求的。当然实现该需求的...
  • wplblog
  • wplblog
  • 2016-08-08 07:33
  • 5893

nodeJs session记住登录信息

var connect = require('connect'), users = require('./users');//注意这里直接require了json文件 当你只是对外暴露数据的...
  • fangchao3652
  • fangchao3652
  • 2016-04-13 17:34
  • 1684

Android——SharedPreferences实现登录界面的记住密码和自动登录功能

一、项目开发 1、项目运行效果图 2、开发概要        主要功能SharedPreferences介绍,其是Android平台上一个轻量级的存储类,用来保存应用的一些常用配置,比如Activi...
  • zsh157621866651
  • zsh157621866651
  • 2015-06-06 08:04
  • 2170

关于用户登录的记住密码实现思路(考虑到安全问题)

做网站的时候经常会碰到要实现记住密码,下次自动登录,一周内免登陆,一个月内免登陆这种需求。这种功能一般都是通过cookie来实现的。 整个过程就是用户在登陆的时候,如果选择了记住密码或者一周内免登陆...
  • lovely_1014
  • lovely_1014
  • 2017-02-04 10:40
  • 579

温泉度假酒店设计选址需要注意安全问题

安全是酒店设计与经营的最重要的方面。酒店设计不仅仅是艺术的挥洒,还是建立在现实基础上的商业品。今天为大家带来的是温泉度假酒店设计选址需要注意的安全问题!     1、当酒店度假村建在海滨或在江河水库...
  • sz84186155
  • sz84186155
  • 2015-06-11 15:30
  • 66

Jquery 实现 “下次自动登录” 记住用户名密码功能

Jquery将用户名密码存储到cookie中 需要导入jquery.js和jquery.cookie.js test cookie $(document).ready(fun...
  • cuoban
  • cuoban
  • 2015-02-06 17:24
  • 668
    个人资料
    • 访问:116403次
    • 积分:2013
    • 等级:
    • 排名:千里之外
    • 原创:93篇
    • 转载:1篇
    • 译文:1篇
    • 评论:47条
    最新评论