日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php js登录,php+js实现单点登录

發布時間:2024/8/23 php 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php js登录,php+js实现单点登录 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

php+js實現單點登錄

2020年08月14日 00:45:23閱讀數:110

登錄信息表

DROP TABLE IF EXISTS `fly_admin_login_info`;

CREATE TABLE `fly_admin_login_info` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`admin_id` int(11) unsigned DEFAULT NULL,

`email` varchar(80) DEFAULT NULL,

`create_time` int(11) unsigned DEFAULT NULL,

`update_time` int(11) unsigned DEFAULT NULL,

`is_login` tinyint(4) unsigned DEFAULT NULL COMMENT '1-已登陸,2-未登錄',

`login_time` int(11) unsigned DEFAULT NULL COMMENT '登錄時間',

`session_id` varchar(150) DEFAULT NULL COMMENT '登錄session_id',

`login_ip` varchar(30) DEFAULT NULL COMMENT '登錄IP',

`os` varchar(255) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB AUTO_INCREMENT=11 DEFAULT CHARSET=utf8mb4;

// 記錄登錄信息

$login_info_data = [

"session_id" => $admin["session_id"],

"login_time" => $admin["login_time"],

"is_login"? ?=> 1,

"email"? ? ? => $admin["email"],

"os"? ? ? ? ?=> Request::param("os"),

"login_ip"? ?=> Request::ip(),

];

if (Db::table('fly_admin_login_info')->where(["admin_id" => $admin["id"]])->find())

{

$login_info_data["update_time"] =? $admin["login_time"];

Db::table('fly_admin_login_info')->where(["admin_id" => $admin["id"]])->update($login_info_data);

}

else

{

$login_info_data["create_time"] =? $admin["login_time"];

$login_info_data["admin_id"]? ? =? $admin["id"];

Db::table('fly_admin_login_info')->insert($login_info_data);

}

/**

*? 檢測是否當前登錄是否有效 建議獨立封裝配合中間件使用

*

*/

public function is_login_validity(Request $request)

{

$adminLogin = session('adminLogin');

if (empty($adminLogin))

{

echo json_encode(["status" => false, "info" => "登錄失效,請重新登錄!", "url" => url('admin/Index/login')]); exit();

}

else

{

$login_info = Db::table('fly_admin_login_info')->where(["admin_id" => $adminLogin["id"]])->find();

if (isset($adminLogin["session_id"]))

{

if ($login_info["session_id"] === $adminLogin["session_id"])

{

echo json_encode(["status" => true]);

}

else

{

session('adminLogin', null);

echo json_encode(["status" => false, "info" => "您的賬號在IP:". $login_info["login_ip"] . "登錄,如果不是您本人登錄,則您的密碼可能已經泄露,請及時修改密碼 !", "url" => url('admin/Index/login')]); exit();

}

}

else

{

// 兼容從前

// 記錄登錄信息

$login_info_data = [

"session_id" => $adminLogin["session_id"],

"login_time" => $adminLogin["login_time"],

"is_login"? ?=> 1,

"email"? ? ? => $adminLogin["email"],

"login_ip"? ?=> Request::ip(),

];

if (Db::table('fly_admin_login_info')->where(["admin_id" => $adminLogin["id"]])->find())

{

$login_info_data["update_time"] =? $adminLogin["login_time"];

Db::table('fly_admin_login_info')->where(["admin_id" => $adminLogin["id"]])->update($login_info_data);

}

else

{

$login_info_data["create_time"] =? $adminLogin["login_time"];

$login_info_data["admin_id"]? ? =? $adminLogin["id"];

Db::table('fly_admin_login_info')->insert($login_info_data);

}

echo json_encode(["status" => true]);

}

}

}

js 一直跑 該環境屬于iframe環境

var is_login_validity_msg = null;

xadmin.admin_login = setInterval(function(){

$.post("is_login_validity",{token:"token_@$%!"},function(res){

if (res.status === false)

{

if (!parent.is_login_validity_msg)

{

parent.is_login_validity_msg = res.info;

}

res.info = parent.is_login_validity_msg ? parent.is_login_validity_msg : res.info;

clearInterval(xadmin.admin_login);

layer.msg(res.info, {icon: 5, time: 1000*60*2}, function()

{

parent.location.reload();

window.location.href = res.url;

});

}

},'json');

},3000);

---------------------

本文著作權歸作者所有。

商業轉載請聯系作者獲得授權,非商業轉載請注明出處。

來源地址:https://www.php.cn/blog/detail/23691.html

來源:php中文網(www.php.cn)

? 版權聲明:轉載請附上博文鏈接!

全部評論

文明上網理性發言,請遵守新聞評論服務協議0條評論

立即提交

總結

以上是生活随笔為你收集整理的php js登录,php+js实现单点登录的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。