2017-09-07 10 views
0

私はDrupal 7サイトを持っています。私は自分のサイトのページに統合したいShinyアプリケーションをビルドしています。アプリは、(そのDrupalサイトのサブドメインにあるアプリの)iframeとして統合されます。R Shiny AppとDrupal 7の統合 - Drupal Cookieの読み方は?

特定のログインユーザーだけが自分のアプリにアクセスできるようにして、私の思考はこのようになりました。 Shiny app DrupalサイトからCookieを読み取り、そのCookieのDrupalサイトのデータベースをチェックします。

私が取得したクッキーのDrupalデータベースを確認するにはどうすればよいですか?私はDrupalデータベースを見ました。セッションテーブルにはそのクッキーに似ているものは含まれていませんでした。どのようにしてRからそのデータにアクセスできますか?

答えて

1

この関数は、ユーザーのセッションクッキーの作成に責任がある:https://api.drupal.org/api/drupal/includes%21session.inc/function/drupal_session_regenerate/7.x

私は簡単に解決策はあなたがクッキーを持って、その後場合は、ユーザーがログインしているかどうかを確認するためにあなたのDrupalのURLを作成することになると思いますあなたのアプリは、リクエストヘッダのクッキーでこのURLをリクエストする必要があります(理論的には、動作しているかどうかを確認できます...すべてのクッキーを送信するだけです。 )。

DrupalのURLはちょうど(user_is_logged_in返却する必要があります)結果:

function mymodule_menu(){ 
    $items=array(); 
    $items['am-i-logged-in'] => array(
     'title' => 'Check if user is logged in or not', 
     'page callback' => '_user_is_logged_in_callback', 
    ); 
} 

function _user_is_logged_in_callback() { 
    if(user_is_logged_in()) { 
    drupal_json_output("ok"); 
    } 
    else { 
    drupal_json_output("ko"); 
    } 
    drupal_exit(); 
} 

その後、あなただけのヘッダにクッキーをwww.yoursitename.com/am-i-logged-in要求する必要があなたのDrupalサーバーへのあなたのhttp要求。

+0

ありがとうございました。私はそれを試し、報告する。あなたが提供したリンクは間違っているかもしれません。 – magasr

+0

リンクを修正しました。基本的にdrupal_session_regenerateは、ユーザーが接続(または接続解除)するたびに呼び出されるため、ユーザーのクッキーとセッションIDのmecanicがそこにあります。 –