您的位置:首页 > 编程语言 > PHP开发

ucenter单点登录

2015-12-12 14:10 1121 查看
ucenter单点登录原理是跨域设置用户信息。

实现的关键:

ucenter文件与应用的融合

融合方式包括模块,或第三方库,如果将ucenter做成自己应用的模块,建议对ucenter中client.php中的方法进行封装处理。如果是第三方库,可以在应用的登录、登出时,直接调用相关函数,但是前提是引入配置文件(这里是ucenter中的配置信息)和client.php。

ucenter文件的调用

核心文件包括uc.php, client.php,建议深度阅读client.php文件中的相关函数。

创建应用

本地或服务器安装ucenter,然后创始人登录后,在左侧菜单选择<应用管理>中添加新应用(自定义),配置相关信息(如名称、url、秘钥、类型、接口文件类型,开启同步登录),提交后创建成功的同时,会在底部生成相关的配置信息(重要),需要你配置到你的应用中,否则通信失败。

当通信成功后,你需要做的就是在应用的登录、登出逻辑中添加ucenter的注册、登录逻辑即可。这样就实现了该功能,效果就是当用户登录应用时,该用户也会同步登录ucenter。在ucenter中的用户管理菜单下,看到该用户。

配置文件分析

//注意,如果是应用和ucenter都在一个服务器上,那么对应的值是mysql, 如果不在,值是NULL
define('UC_CONNECT', 'NULL');

//同一个服务器可用localhost, 不在,值为ucenter服务器ip
define('UC_DBHOST', 'ip');

//mysql用户名
define('UC_DBUSER', 'root');

//mysql密码
define('UC_DBPW', 'xxx');

//ucenter数据库名称
define('UC_DBNAME', 'xxx');

//ucenter数据库编码
define('UC_DBCHARSET', 'gbk');

//ucenter数据库表前缀
define('UC_DBTABLEPRE', '`xxx`.uc_');

//数据库持久化连接,no
define('UC_DBCONNECT', '0');

//应用与ucenter通信密钥
define('UC_KEY', '123456');
define('UC_API', 'http://域名/ucenter');
define('UC_CHARSET', 'gbk');
define('UC_IP', '');

//在ucenter中创建的应用的id
define('UC_APPID', '2');
define('UC_PPP', '20');


当然通信失败有必要原因罗列一下:

UC_APPID不同

UC_KEY不同

ucenter与应用不在同一服务器,将配置信息设置如下:

define('UC_CONNECT', 'NULL');
define('UC_DBHOST', 'ip');


大致就讲这些吧,client中函数自己去看吧,本人是拿yii2.0与ucenter进行结合的,希望对用到这些的朋友有用!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息