1

独自のログインシステムを備えた CakePHP Web サイトがあります。同じサーバー (ただし別のフォルダー) に、Wordpress ブログがあります。すでに CakePHP Web サイトにログインしているユーザーは、リンクをクリックして WP ブログに移動し、同時にブログにログインできます。これはすべて完全に機能します。

問題は、元の CakePHP Web サイトに戻るときに発生します。ブログに Web サイトへのリンクを配置し、ユーザーがそれをクリックすると、Web サイトに移動しますが、そこでのセッションは失われ、再度ログインする必要があります。

それが起こらないようにする方法はありますか?ユーザーが Web サイトを離れても、セッションは引き続き有効であるべきではありませんか? 期限切れではなく、30分に設定しています。

これは、ユーザーが Web サイトのリンクからブログにアクセスしていない場合でも発生します。Web サイトにログインし、新しいタブを開いて (ログインせずに) ブログに入り、Web サイトへのリンクをクリックすると、Web サイトのセッションが失われます。さて、実際には新しいセッションがあります (私はセッション IDを印刷していて、変更されています)。

セッションを開いたままにしておく方法についてのアイデアは役に立ちます。

また、念のため、Web サイトからブログにユーザーをログインさせるために使用するスクリプトを次に示します。

$sid = $_GET['sid'];
session_id($sid);
session_start();

if (isset($_SESSION['Auth']['User']['username'])) {

    require('../blog/wp-blog-header.php'); //includes wordpress functions

    $username = $_SESSION['Auth']['User']['username'];

    $user = get_userdatabylogin($username);
    wp_set_current_user($user->ID);
    wp_set_auth_cookie( $user->ID );
}

header("Location: http://myblog.com/"); //Redirect user to the blog
4

1 に答える 1

1

セキュリティレベルを確認してください。場合によっては、「リファラー」サイトをチェックします。あなたがWPブログから来ているなら、それはそれについて適合しているかもしれません. それが新しいセッションIDを生成しているので、それが起こっていると私が想定していることです。

于 2012-10-15T16:09:27.733 に答える