ucenter同步登陆机制
做php开发的朋友大都知道有个ucenter可以用来实现多个站点同时登陆同时退出,用户同步的功能。下面作者将要就ucenter是如何实现同步登陆的和大家做一下分享。
首先站点都要引入一个uc_client这样一个客户端,以登陆为例,登陆时首先会调用一个外部函数,uc_client/client.php下的uc_user_login检查是否存在此用户,如果正确则继续执行登陆代码,检测此用户过程:通过用户是以什么方式连的uc(mysql还是http post)然后去相应地用不同函数来检测用户,检测完成后实现本地登陆,代码自己写,然后让其他应用程序也登陆,此时调用外部函数uc_user_synlogin,过程如下:
Uc_user_synlogin调用uc_api_post来实现是要做哪个模块,比如现在就是user模块,传的参数是user_id,具体这是怎么实现的没再仔细看,总之是将数据发送到uc_api即你的ucenter地址的index.php,同时附一些参数,根据这些参数然后再去读里面所有可通信的应用程序,让他们也实现登陆,这是其他程序的事儿了。
通知其他应用程序主要是通过ucenter,去向各应用程序下的api/uc.php发送一些数据,这些数据由uc.php接到请求然后去执行相应的登陆操作等。
这是我写的,基本上和他的一样,本想把具体到每个函数都写的可今天有点累了,呵呵,自己找吧还是很简单的。
1.从用户xxx在某一应用程序的login.php,输入用户名,密码讲起。先用uc_user_login函数到uc server验证此用户和密码,如正确,则写入session,写入cookies,并更新应用程序会员表中的登录ip,登录时间。用户感觉不到这个过程。
2.然后通过uc_user_synlogin通知uc server 用户xxx登录成功,这个过程可能使用ajax,用户感觉不到通知过程。
3.uc server收到这个消息后,马上命令手下,把xxx登录的消息,像令牌环一样,发给所有愿意接收(后台中那个是否开启同步登录)这个消息的其它应用程序。其实就是带参数访问一下各应用程序的uc.php,用户感觉不到这个过程。
4.各应用程序靠api下的uc.php来接收uc server发来的消息,并对uc server言听计从,让干什么就干什么。现在,收到让xxx用户在你的程序中登录的命令,马上执行。并写本应用程序的session,并且使用p3p, 写入相同域或不同域的cookies. 用户感觉不到这个过程。
5.最后所有和uc整合的程序,xxx均登录成功。用户从www.phpernote.com/bbs登录后, 跳到www.phpernote.com/同样显示登录。因为bbs 和news系统在后台均已登录。
6.应用程序与uc server的会话结束。
您可能感兴趣的文章
- 如何去除dedeCMS后台登陆页面的广告
- php Output Control 深入理解 ob_flush 和 flush 的区别
- 网站上多种url都能访问同样的内容是件危险的事
- http请求中同步请求和异步请求的区别
- js setInterval和setTimeout用法分析
- CuteFTP连接ftp服务器时弹出“遇到无效的参数”错误的解决办法
- PHP中跳出多重循环使用break,continue,goto,return,exit的用法和区别
- mysql中tinyint、smallint、int和bigint类型的用法区别

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

Video Face Swap
使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

一些玩家在PS4或PS5发布时遇到了一个奇怪的问题。例如,当他们的PlayStation网络登录失败,但互联网连接正常时,这可能会引起困扰。在输入登录信息时,可能会遇到错误,而且可能无法加入PSParty聊天。如果你遇到了类似问题,这个指南可能会帮助你解决。在PlayStationNetworkSign-in旁边,你会看到错误信息‘AnErrorHaveAreAre’,它会显示‘Failure’。其他参数如获取IP地址、互联网连接和连接速度都是成功的。那么,这里的问题可能是什么呢?我会给你工作的

AADSTS7000112错误可能会阻止您使用Microsoft帐户登录应用程序,给您带来不便。本文将为您提供解决方案,帮助您解决这个问题,恢复正常的登录体验。登录:很抱歉,您登录时遇到问题。AADSTS7000112:应用程序已禁用。幸运的是,您可以遵循一些简单的建议来修复错误。错误代码AADSTS7000112是什么?错误代码AADSTS7000112表示与Microsoft的AzureActiveDirectory连接出现问题。通常情况下,这可能是由于尝试登录的Microsoft应用程序被

一般来说,我们只需要同时使用耳机或者音响的其中一个设备,但是有些朋友反映在win11系统中,遇到了耳机和音响一起响的问题,其实我们可以在realtek面板中将它关闭,就可以了,下面一起来看一下吧。win11耳机和音响一起响怎么办1、首先在桌面上找到并打开“控制面板”2、进入控制面板,在其中找到并打开“硬件和声音”3、然后再找到一个喇叭图标的“Realtek高清晰音频管理器”4、选择“扬声器”再点击“后面板”进入扬声器设置。5、打开之后我们可以看到设备类型,如果要关闭耳机就取消勾选“耳机”,如果要

当您在您的同步文件夹中发现一个或多个项目与Outlook中的错误消息不匹配时,这可能是因为您更新或取消了会议项目。这种情况下,您会看到一条错误消息,提示您的本地数据版本与远程副本存在冲突。这种情况通常发生在Outlook桌面应用程序中。您同步的文件夹中的一个或多个项目不匹配。若要解决冲突,请打开这些项目,然后重试此操作。修复同步的文件夹中的一个或多个项目不匹配Outlook错误在Outlook桌面版中,当本地日历项与服务器副本发生冲突时,可能会遇到问题。不过,幸运的是,有一些简单的方法可以帮助您

企业微信的邮箱怎么登陆?企业微信APP中是可以登陆邮箱,但是多数的用户不知道邮箱如何的登陆,接下来就是小编为用户带来的企业微信邮箱登陆方法图文教程,感兴趣的用户快来一起看看吧!企业微信使用教程企业微信的邮箱怎么登陆1、首先打开企业微信APP,进入到主页面最底部【工作台】点击来专区;2、之后在工作台专区中,选择其中的【企业邮箱】服务;3、然后跳转到企业邮箱功能页,点击底部的【绑定】或者【换一个邮箱】;4、最后在下图所示的页面输入【QQ账号】和【密码】即可登陆邮箱。

MySQL是一个非常流行的开源关系型数据库管理系统,广泛应用于各种Web应用、企业系统等。在现代业务的应用场景下,大多数的MySQL数据库需要部署在多台服务器上,以提供更高的可用性和性能,这就需要进行MySQL数据的迁移和同步。本文将介绍如何实现多台服务器之间的MySQL数据迁移和同步。一.MySQL数据迁移MySQL数据迁移指的是将MySQL服务器中的数
![GeForce Experience登录死机[修复]](https://img.php.cn/upload/article/000/887/227/171084420790568.png?x-oss-process=image/resize,m_fill,h_207,w_330)
本文将指导您解决在Windows11/10上出现的GeForceExperience登录死机问题。通常情况下,这可能是由于不稳定的网络连接、损坏的DNS缓存、过时或损坏的图形卡驱动程序等原因引起的。修复GeForceExperience登录黑屏在开始之前,请确保重新启动您的互联网连接和计算机。有时候,这个问题可能只是由于临时问题引起的。如果您仍然遇到NVIDIAGeForceExperience登录黑屏问题,请考虑采取以下建议:检查您的internet连接切换到另一个Internet连接禁用您的

Wegame是一款搭配腾讯游戏使用的软件,可以通过它来启动游戏,获得加速,而近期有不少用户在使用的时候出现了登陆操作过于频繁的提示,面对这个提示,许多用户都不知道怎么才能够成功解决,那么本期软件教程就来和大伙分享解决方法,一起来了解看看吧。 Wegame登陆操作过于频繁怎么办? 方法一: 1、首先确认一下我们的网络连接是否正常。 (可以尝试打开浏览器,看看能不能上网) 2、如果是网络故障,那么尝试重启路由器、重连网线、重启电脑来解决。 方法二: 1、如果网络没有问题,那么选择&
