これはサブシステムでの私の最初の試みであり、ほとんどの場合うまくいっています。セッションが終了したときに、ユーザーをサブシステム サイトからメインのトップ サイトにリダイレクトするのに問題があります。
ここでは、かなり標準的なサイト構造が考えられます。
- メインサイトからログインしました
- ログインに基づいて、適切なサブシステム(subSite1、subSite2)にリダイレクトされます
- セッションが終了したら、mainSite.login にリダイレクトしたいのですが、代わりに subSite1.login にリダイレクトされます。
私の質問は、ユーザーをサブシステム サイトから mainSite ログインにリダイレクトするにはどうすればよいですか?
これが私のサイト構造です。
mainSite
-assets
-contorllers
-login.cfc
-security.cfc
-framework
-layouts
-model
-subsystems
-subSite1
-controllers
-layouts
-model
-views
-main
-default.cfm
application.cfc
index.cfm
-subSite2
...
-views
-login
-default.cfm (login form)
application.cfc
index.cfm
/mainSite/controllers/security.cfm は、FW/1 のダウンロードから直接取得したもので、私のニーズに合わせて小さな変更を加えています。authorize() 関数でリダイレクトを更新しようとしましたが、うまくいきませんでした。あなたの洞察を前もってありがとう。
component {
function init( fw ) {
variables.fw = fw;
}
function session( rc ) {
// set up the user's session
session.auth = {};
session.auth.isLoggedIn = false;
session.auth.fullname = 'Guest';
}
function authorize( rc ) {
// check to make sure the user is logged on
if (not(structKeyExists(session, "auth") && session.auth.isLoggedIn ) && !listfindnocase('login', variables.fw.getSection() ) && !listfindnocase('main.error', variables.fw.getFullyQualifiedAction() )) {
variables.fw.redirect('login');
}
}
}