传统实现用户登陆一般采用session记录用户登陆信息,前后端分离后依然可以使用session来记录用户信息,不同的是传统形式的一次成功登陆请求后,再点击其他页面时,session一直是存在的,在一定时间内是有效的;而前后端分离的方式请求一次成功登陆后,再次发送新的请求,则会产生新的session,为避免这个问题需要记录session的id号,并在整个请求过程中都记录并传递这个id号,才能保证session的一致性。
下面举例来说明具体使用方法(后端以php为例):
1 前端成功登陆后拿到后端返回的sessionid(假如后端地址为 http://127.0.0.1)
后端获取sessionid示例如下://登录成功
session_start();
$_SESSION['username'] = $result['name'];
$_SESSION['userid'] = $result['id'];
//获取当前session id
$sessionid=session_id();
2 前端登陆后每次向后端发起请求时都要将拿到的sessionid传递给后端,例如 访问 http://127.0.0.1/getDataList.php?sid=sessionid(将sessionid传递给后端),后端可以做如下操作来验证用户登陆信息://获取客户端传递的sessionid
$sessionid=$_GET["sid"];
session_id($sessionid);
//根据session id获得成功登陆后保存的session
session_start();
$userid = $_SESSION['userid'];
//$userid不为空说明为登陆状态
if($userid){
//做相关操作
}else{
//提示尚未登陆
}