ucenter单点登录

来源:互联网 发布:网络流行欧美歌曲 编辑:程序博客网 时间:2024/05/21 20:42

ucenter单点登录原理是跨域设置用户信息。
实现的关键:

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

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

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

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

  5. 配置文件分析
//注意,如果是应用和ucenter都在一个服务器上,那么对应的值是mysql, 如果不在,值是NULLdefine('UC_CONNECT', 'NULL');//同一个服务器可用localhost, 不在,值为ucenter服务器ipdefine('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_');//数据库持久化连接,nodefine('UC_DBCONNECT', '0');//应用与ucenter通信密钥define('UC_KEY', '123456');define('UC_API', 'http://域名/ucenter');define('UC_CHARSET', 'gbk');define('UC_IP', '');//在ucenter中创建的应用的iddefine('UC_APPID', '2');define('UC_PPP', '20');

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

  1. UC_APPID不同
  2. UC_KEY不同
  3. ucenter与应用不在同一服务器,将配置信息设置如下:
define('UC_CONNECT', 'NULL');define('UC_DBHOST', 'ip'); 

大致就讲这些吧,client中函数自己去看吧,本人是拿yii2.0与ucenter进行结合的,希望对用到这些的朋友有用!

1 0