登录的顶号功能实现
顶号功能的基本实现原理
1、建议修改PHP/JAVA的配置,使sessionid保存到memcache;
2、每次登录时,查询表所有该user_id的sessionid;
3、删除memcache或文件中第2步查到的sessionid,即可注销其他设备上的登录凭证;
4、每次登录时,记录登录者user_id和session_id;
对于不设顶号的账户,则无需进行234步骤;
//顶号功能,登录成功时调用 protected function do_1login(){ // var_dump( $_SESSION ); if( $_SESSION['padmin']['is_1login'] ){ $uid = $_SESSION['padmin']['uid']; //干掉旧的sessionid $old_arr = Model_Adminsession::instance()->fetch_all([['uid','=',$uid]]); // var_dump($old_arr); if( PRODUCTION_ENV ){ //生产环境,用的memcache保存sessionid $mem = new Memcache; $ok = $mem->connect('127.0.0.1', 11211); foreach($old_arr as $line){ // var_dump( $line['session'] ); $mem->delete( $line['session'] ); }unset($line); $mem->close(); }else{ $sess_dir = session_save_path(); // var_dump($sess_dir); foreach($old_arr as $line){ @unlink( $sess_dir.'/sess_'.$line['session'] ); //删除session缓存 }unset($line); } Model_Adminsession::instance()->delete([['uid','=',$uid]]); //记录最新的sessionid $session = session_id(); $ok = Model_Adminsession::instance()->insert(['uid'=>$uid, 'session'=>$session]); // var_dump($ok); } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
2018-05-08 游戏行业术语一览(1)--游戏分类