- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 Joomla 网站和一个 Flash 应用程序(在 Flex 中,如果重要的话)。 Flash 应用程序使用 BlazeDS 作为后端。所有的东西都托管在同一个服务器、同一个域中。
有没有办法为上述环境实现单点登录?
更新:
我想要的是:如果用户登录 Joomla,他们将自动登录 Flash 应用程序。反之亦然。
最佳答案
您需要创建一个组件来处理登录。
实际的登录代码非常简单。这是我们为 Joomla1.5 开发的组件的示例。
/**
* Log into Joomla
* @return Bool Login Status
* @param $username String
* @param $password String
*/
function login($username, $password, $remember = false) {
if ($username && $password) {
$mainframe =& JFactory::getApplication();
return $mainframe->login(
array('username'=>$username, 'password'=>$password),
array('remember'=> $remember, 'silent'=>true)
);
}
return false;
}
如果您不想创建完整的组件,则可以使用此页面中的 PHP 组件:http://www.fijiwebdesign.com/products/joomla-php-pages.html
无论您使用哪种方式,重要的是如何生成用于登录 Joomla 的 URL。它看起来像:
example.com/index.php?option={com_component}&template=component&no_html=1
其中 {com_component} 是您的组件的名称。
在使用 Joomla PHP 组件的情况下,它看起来像:
example.com/index.php?option=com_php&Itemid={itemid}&template=component&no_html=1
其中 Itemid 是您为 PHP 组件创建的页面的菜单 Itemid。它是在您为 PHP 页面的 PHP 组件创建菜单项后生成的。
&template=component&no_html=1 确保只加载组件 HTML,no_html 表示它不会加载任何 HTML 声明。
因此,您可以拥有一些代码,例如返回 JSON 或 XML 响应,您的 Flex 应用程序可以通过 URLLoader 或类似请求使用这些代码。或者只是字符串 TRUE 或 FALSE。
更新:
Ooops, sorry that's not want I want. I want if the user logged in at Joomla, they will be auto logged in at the Flash app. Same vice versa.
我假设您想将您的用户帐户保留在 Joomla 数据库中,但如果您计划将用户数据存储在其他地方,则必须具体说明。
以下是检查用户是否已经登录 Joomla 的方法:
$User =& JFactory::getUser();
if (!$User->guest) {
// user is logged in
} else {
// user is not logged in
}
以下是获取用户 session ID 的方法:
$Session =& JFactory::getSession();
$sessid = $Session->getId();
获取 session 名称:
session_name();
将用户和 session 数据从 Joomla 发送到 Flash 的示例:
$User =& JFactory::getUser();
$Session =& JFactory::getSession();
// for example use JSON which Flex undertands
echo json_encode((object) array('user'=>$User, 'session'=>$Session, 'name'=>session_name ());
如何实现用户和 session 数据的检索由您决定。您可以让 Flash 向 Joomla 发送 HTTP 请求,或者您可以使用 flash vars 或 ExternalInterface ( http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/external/ExternalInterface.html )。
更重要的部分是在 Flex 和浏览器之间传递您的 session 名称和 ID。您需要 session 名称,以便您可以在浏览器中设置 session cookie。 cookie 的名称应与 session 名称相同,其值应为 session ID。
您可以使用 ExternalInterface 通过浏览器 JavaScript 设置 cookie。
设置 cookie 后,Flex 和浏览器将共享同一个用户 session ,并将显示已登录的用户。
您也可以在 BlazeDS 和 Joomla 之间做同样的事情,然后让 Flash 与 BlazeDS 对话以获取 session 信息。
另一方面,如果用户通过 Joomla 登录,则在嵌入 Flash 时使用 flashvars 将该 session 传递给 Flash,或使用 ExternalInterface。
关于flash - 使用 Joomla 和 Flash 进行单点登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1573670/
我在 mac 上,我有一个预先存在的 Flash 项目。 (即通常的 fla、src、lib)文件夹。 现在,我想开始使用 Flash Builder 4 编写代码。 如何导入所有这些文件,以便我现在
我在 Flash 视频播放器中遇到了一个奇怪的、很难重现的图形故障!,目前仅在 Chrome 中。 “进入建筑物”下方的灰色矩形显示了 Flash 播放器所在的 html div 的背景颜色。“我们在
我对 Flash 有点陌生,我只是找不到一种很好的方法来控制我添加到容器影片剪辑中的元素的位置。 我所做的是 addChild 到我的目标容器 Movie Clip 和控件 child 的 x,y 值
我是一名 AS3 开发人员,习惯于使用 Flash Builder。我正在与一位使用 Flash Professional 为游戏设计 Sprite 和背景的设计师合作。我希望为我们创建一个集成的工作
就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the he
当您像下面那样在 FLash Builder 中嵌入媒体时,它会创建一个类来引用 [Embed(source="images/list.png")] protected static const LI
有没有办法在 Flash 上本地启用跳帧? 当您开发游戏时,您会开发动画以匹配游戏玩法的节奏,并以目标帧速率(Flash 通常为 24-40fps)进行制作。但是如果用户的电脑速度太慢,无法保持目标帧
大家好,我想知道 AS3 中的 dispatchEvent 是什么。 谷歌搜索时没有任何想法。 :( 所以请帮帮我 编辑1: public static const SET_VOLUME:Strin
我多次听说我应该避免在我的网站上使用 Flash。然而,没有人告诉我这样做的充分理由。我已经搜索了原因,我看到很多不正确的(例如 Flash 中的文本不能被搜索引擎索引),或者不一定是真实的或足够重要
我正在为一个非常大的网站做一些测试,创建了许多不同的开发人员。有没有办法判断网站是否在使用 flash和/或已加载闪存 plugin ?如果页面使用 Flash,有没有办法告诉页面/代码的哪一部分触发
我正在研究“Foundation Actionscript 3.0”一书中的音频播放器演示。当我尝试发布 AudioDemo_final.FLA 文件时,出现以下错误:“Adobe Flash CS3
我有一个特定的FLA,每次尝试编译时都会崩溃(切换到Snow Leopard之后)。 Flash只是停滞不前,我被迫使用“强制退出” ...我不知道是什么原因造成的,并且找不到任何崩溃报告。 Flas
所以我非常熟悉 Java、C 和 C++ 中的内存管理;然而,在闪存中有哪些结构用于内存管理?我假设 flash 有一种像 java 的虚拟机,并且我一直假设当它们被设置为 null 时会被垃圾收集。
关闭。这个问题不满足Stack Overflow guidelines .它目前不接受答案。 想改善这个问题吗?更新问题,使其成为 on-topic对于堆栈溢出。 5年前关闭。 Improve thi
是否可以在 flash 中创建 UDP 套接字连接?我知道 RTMPF,但它不提供对 UDP 的访问。我知道在 AIR 中它是可能的,但我正在寻找一种“闪光”解决方案。 谢谢你 最佳答案 号 UDP
不知道如何表达这个意思,但是我想知道是否可以创建一个全面的错误处理程序来保护整个代码,然后发送给自定义处理程序,该程序在程序中以图形方式输出信息。类似于以下内容: root.addEventListe
我正在尝试创建可在不同场景中使用的UI影片剪辑。 它使用来自根范围的变量来确定状态。 当我按下静音按钮时,效果很好,但是当我尝试取消静音时,就变得很奇怪。有时需要2次点击才能取消静音,有时还需要更多。
是否可以通过麦克风记录最终用户? 我可以用录音做什么 Action ? 例如,我能否实时获得声音(分贝)的音量? 我可以将记录保存到文件中吗? 谢谢。 最佳答案 是的,Flash允许(具有用户许可权)
当我访问我之前在 IE 中构建的站点时,我在浏览器底部弹出消息栏,提示该站点想要运行 Flash。 这很好,除了网站中没有任何 Flash。 什么会导致这种情况? Flash 现在怎么会出现在站点中?
概要 我正在尝试制作一个包含多个相同SWF的网页。我有一个问题,它的加载速度太慢了(虽然下载时间还不错)。我在每个单元格中都有一个4x4表格,在iframe中嵌入了一个swf文件。 (注意:4 X 4
我是一名优秀的程序员,十分优秀!