最近在公司开发一个新的项目假设项目域名是a.com,需要接入b.com的单点登陆系统。
(1).首先我们会在a.com的登陆页面用iframe引入b.com来显示登陆界面,实际上登陆验证操作都是在b.com上面
(2).当b.com验证通过,会在前端ajax请求a.com的回调地址,这个回调地址目的就是给自己写入cookie标记登陆成功
但是在实际执行的时候我们发现a.com并没有生成cookie,通过f12明明看到在iframe中b.com ajax请求 a.com/api.php,并且返回设置cookie。通过了解才知道虽然是ajax请求的a.com,但是浏览器认为在iframe中设置cookie是不安全的,必须使用p3p来跨域。
例如:
header('P3P:CP="IDC DSP COR ADM DEVi TAIi PSA PSD IVAi IVDi CONi HIS OUR IND CNT"'); 项目需要使用websocket推送最新订单,客户服务器非linux不支持swoole,因此使用原生,直接上代码(1).PHP服务端<?php ini_set('error_reporting', E_ALL ^ E_NOTICE); ini_set...
如果想在windows中执行php,并且让php脚本在后台运行,可以用下面的cmd命令start /b php D:\wwwroot\default\demo1\run.php例如上面的命令意思后台运行run.php,如果想用php编写异步代码: ...
逛公众号文章看到文章"php实现事件监听与触发的方法,你用过吗?",我就好奇了,php又不是asp.net的webform,哪里来的服务端事件监听。于是学习了一波。先看下监听类:class Event { /** &nbs...
<?php //php7+ define('CONFIG', [ 'MYSQL' => '127.0.0.1',  ...
php生成器的方法getReturn获取生成器迭代完成后的返回值,当生成器迭代完成会将生成器的返回值返回,因此如果迭代器未进行迭代是获取不到值的,如果你没有return值则返回null,参考代码:<?php function G1() { &nbs...
本教程使用的定时任务基于EasyTak,EasyTask官方文档:https://gitee.com/392223903/EasyTask(1).安装tp5.0或者5.1composer create-project topthink/think=5.0.* tp5&n...