thinkphp如何实现单点登录

发布时间 - 2019-08-26 00:00:00    点击率:

一、前提:CAS服务器搭建完成

这个不是本次的重点,不多讲。传送门:https://blog.csdn.net/u013825231/article/details/79132399

二、下载phpCAS客户端

php客户端下载:https://github.com/apereo/phpCAS

php客户端配置的注意事项等内容:https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252517/phpCAS

php客户端的要求:https://apereo.atlassian.net/wiki/spaces/CASC/pages/103252625/phpCAS+requirements

注意:php配置文件php.ini需要开启php_curl,找到 ;extension=php_curl.dll ,将该句前面的分号去掉即可,改为 extension=php_curl.dll

三、thinkphp5引入phpCAS类库

1.下载好的phpCAS客户端文件结构。

相关推荐:《ThinkPHP教程》

2. 把source文件夹复制到thinphp5下的extend文件夹下,并重命名为:phpCAS

3. config.php文件的配置

4. 因为本人请求单点登录的服务器是http认证的,不是https,需要修改CAS/client.php,将其中的https改为http(刚开始没有修改client.php这个文件,总是使用https认证,所以请求失败)

5. 把CAS类库文件夹的同级文件CAS.php,重命名为phpCAS.php

修改成

6. 登录的控制器方法为:

setDebug();
        
        // Initialize phpCAS
        $phpCAS->client(CAS_VERSION_2_0, $cas_host, $cas_port, $cas_context);
 
        // For quick testing you can disable SSL validation of the CAS server. 
        // THIS SETTING IS NOT RECOMMENDED FOR PRODUCTION. 
        // VALIDATING THE CAS SERVER IS CRUCIAL TO THE SECURITY OF THE CAS PROTOCOL! 
        $phpCAS->setNoCasServerValidation();
 
        //这里会检测服务器端的退出的通知,就能实现php和其他语言平台间同步登出了
        $phpCAS->handleLogoutRequests();
 
        //访问CAS的验证通过后,跳转到网页
        if($phpCAS->forceAuthentication()){ 
 
        echo "";
 
        };
        
     }
}

最后访问这个登录的方法,完成单点登录的页面跳转!


# thinkphp  # 客户端  # 单点  # 命名为  # 类库  # 出了  # 就能  # 不多  # 刚开始  # 跳转  # 等内容 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: Laravel如何集成Inertia.js与Vue/React?(安装配置)  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  JS实现鼠标移上去显示图片或微信二维码  Linux安全能力提升路径_长期防护思维说明【指导】  手机网站制作与建设方案,手机网站如何建设?  详解Android中Activity的四大启动模式实验简述  iOS中将个别页面强制横屏其他页面竖屏  html文件怎么打开证书错误_https协议的html打开提示不安全【指南】  利用 Google AI 进行 YouTube 视频 SEO 描述优化  LinuxCD持续部署教程_自动发布与回滚机制  网站制作价目表怎么做,珍爱网婚介费用多少?  百度输入法ai组件怎么删除 百度输入法ai组件移除工具  如何用wdcp快速搭建高效网站?  公司网站制作价格怎么算,公司办个官网需要多少钱?  如何用PHP快速搭建CMS系统?  Laravel如何使用Facades(门面)及其工作原理_Laravel门面模式与底层机制  Laravel事件和监听器如何实现_Laravel Events & Listeners解耦应用的实战教程  文字头像制作网站推荐软件,醒图能自动配文字吗?  Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】  Laravel如何生成API文档?(Swagger/OpenAPI教程)  Laravel N+1查询问题如何解决_Eloquent预加载(Eager Loading)优化数据库查询  Linux系统命令中tree命令详解  Laravel怎么生成二维码图片_Laravel集成Simple-QrCode扩展包与参数设置【实战】  如何快速查询网站的真实建站时间?  如何在景安云服务器上绑定域名并配置虚拟主机?  Laravel策略(Policy)如何控制权限_Laravel Gates与Policies实现用户授权  Laravel怎么实现搜索高亮功能_Laravel结合Scout与Algolia全文检索【实战】  油猴 教程,油猴搜脚本为什么会网页无法显示?  如何在阿里云服务器自主搭建网站?  Laravel如何实现密码重置功能_Laravel密码找回与重置流程  简单实现Android文件上传  如何用手机制作网站和网页,手机移动端的网站能制作成中英双语的吗?  Laravel定时任务怎么设置_Laravel Crontab调度器配置  如何在企业微信快速生成手机电脑官网?  Python并发异常传播_错误处理解析【教程】  Laravel Eloquent性能优化技巧_Laravel N+1查询问题解决  如何快速搭建个人网站并优化SEO?  html5怎么画眼睛_HT5用Canvas或SVG画眼球瞳孔加JS控制动态【绘制】  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  高端云建站费用究竟需要多少预算?  Laravel中间件起什么作用_Laravel Middleware请求生命周期与自定义详解  Win11怎么设置默认图片查看器_Windows11照片应用关联设置  怎么制作一个起泡网,水泡粪全漏粪育肥舍冬季氨气超过25ppm,可以有哪些措施降低舍内氨气水平?  php中::能调用final静态方法吗_final修饰静态方法调用规则【解答】  nginx修改上传文件大小限制的方法  轻松掌握MySQL函数中的last_insert_id()  如何将凡科建站内容保存为本地文件?  Laravel如何创建和注册中间件_Laravel中间件编写与应用流程  Laravel怎么实现API接口鉴权_Laravel Sanctum令牌生成与请求验证【教程】  logo在线制作免费网站在线制作好吗,DW网页制作时,如何在网页标题前加上logo?