タグ付けされた質問 「sessions」


2
Drupalのセッション管理とユーザー認証について
デフォルトのユーザー認証を中央サーバー、つまりSSOサーバーの認証に置き換える必要があるという要件があります。 Drupalをデバッグすることで、すべてのセッション管理がincludes/session.incファイルで行われることを知りました。画像に示すように認証を行いたい: シナリオ:ログイン 手順の詳細は次のとおりです。 ログインフォームを置き換えて、SSOサーバーにユーザー名とパスワードを送信します(Drupalではなく、.NET上)。 そのサイトのデータベースを使用して、SSOサーバーでユーザーを認証します。私のウェブサイトのカスタムPHPページ(またはモジュールによるフォーム?)に応答を送り返します。 応答を使用して、usersテーブルでユーザーを識別し、パスワードを確認せずにそのユーザーのセッションを作成します(二重認証を意味するため)。デフォルトでは、Drupalは$insecure_session_name変数名と値を使用してCookieを設定します$sid。DrupalがここでCookieを設定しないようにし、代わりにSSOサーバーに変数の値を送信します。 SSOサーバーは、値を取るクッキーを作成し、メインドメインにドロップしますdomain.com(両方を思い出させるmy websiteし、sso serverどのすぎではないのDrupalで、メインドメインのサブドメインにあります)。次に、drupalサイトはそのCookieを使用してログインできます。 私はそれが難しい質問であることを知っています、私はどのように始めるべきかについてのポインタを探していますか?彼らは「コアをハッキングするべきではない」と言っています。だから、私の質問は: Drupal認証とセッション管理がどのように機能するかを理解するには、どこを探すべきですか? includes/session.incフックを使用して関数を呼び出すことができる方法はありますか?(関数のコメントには「内部使用のみ/変更しないでください」と書かれています) 注:同じ方法を使用してユーザーを登録するため、レコードはSSOサーバーの中央データベースに残ります。そしてその間に、Drupalサイトのデータベースにある同じユーザーのジャンクパスワードを入力します(ログイン中にパスワードがチェックされないため)。

4
すべてのアクティブユーザーをログアウトする方法は?
サイトを「メンテナンスモード」にする代わりに、完全な「読み取り専用モード」にしたいと思います。そのためのモジュールがありますが、それは「ノードの追加と編集」を防ぐだけです。ログインと登録を含むすべてのユーザーアクティビティを防止して、基本的に(ワニス)キャッシュからサイトを提供するようにします。副次的な利点として、サイトにリクエストが殺到した場合、このタイプの「読み取り専用モード」を使用します。 私の質問:すべてのアクティブユーザーをログアウトするにはどうすればよいですか?ログインと登録は、フックでリダイレクトできます。
15 7  sessions 

4
匿名ユーザーのデータ/セッションの保存
私は店で働いています、そしてカートのために、私は支払いの前にアイテムを保存する必要があります。 $tempstore = \Drupal::service('user.private_tempstore')->get('boutique'); $tempstore->set('poids', $form_state->getValue('poids')); 以下のユーザーサービスを確認します。 pivate_tempstoreおよびshared_tempstore しかし、それは認証ユーザーに対してのみ機能します。 ストアデータには何を使用できますか?$ _SESSION?またはDrupal 8にはそのためのサービスがありますか?
12 8  sessions  files 

2
クッキーを設定および取得する方法は?
数日と数時間後、私はCookieが設定されたらどうするかに関する問題とパッチのみを見つけましたが、最初にCookieを設定する方法について言及していませんでした。 私たちの意図は、(すべてのユーザーロールに対して)ランディングページの(セッション)Cookieを設定し、アウトバウンドリンクのURLで使用するために、ビューを通じて特定のページでそのCookieを取得することです。これは標準プログラミングでは非常に簡単です(私が理解している場合でも)が、Drupalでこれが実際に可能かどうかはかなり疑問に思っています。
12 sessions 

4
$ messagesの更新が1ページ遅れるのはなぜですか?
私は非常にシンプルなテンプレートのページを持っています: <!DOCTYPE html> <html> <head><title>TEST REGISTRATION PAGE</title></head> <body> <?php print drupal_get_form('user_register'); print $messages; print $closure; print $main_content; ?> </body></html> 基本的には、登録フォームのみを表示します。 フォームにいくつかの不正なデータを入力しました—既に使用されているユーザー名(admin)で、電子メールアドレスはありません。 「新規アカウント作成」をクリックします。 ページが送信されて再読み込みされたようですが、何も起こりません。エラーメッセージは表示されていません。 ページを更新します(F5)。 Firefoxは「このページを表示するには、Firefoxは以前に実行されたアクションを繰り返す情報を送信する必要があります」と表示するため、POSTが以前に実行されたことがわかります。 そのダイアログウィンドウで[再送信]をクリックします。 エラーメッセージが表示されます—「電子メールアドレスフィールドは必須です」、「名前adminは既に使用されています」。 これは、登録フォームだけでなく、これまでにテストしたすべてのフォームで発生します。 なぜこうなった?エラーメッセージが初めて表示されるように修正するにはどうすればよいですか? これをデバッグするために必要なことは何でもできて嬉しいですが、調べ始めるにはいくつかの指示が必要です。:)
10 6  sessions 

2
register.jsonはユーザーにログインせず、ユーザーのセッション/トークン/パスワードを返しません
ここにリストするにはあまりにも多くのバリエーションを試してみましたが、基本的なポイントは、サービスを介して登録した直後にユーザーをログインさせることができないということです。私は、サービス7.x.3.11のみを有効にし、drupalgap 7.x.1.9によって提供されるデフォルトのリソース設定で、Drupal 7.33の新規インストールを試しました。 Drupalインターフェースを使用して登録すると、ユーザーが作成され、セッションが開き、ログインしているプロフィールページに移動します。 対 サービスエンドポイントを呼び出すと/services/user/register.json、Drupalはアカウントを作成しますが、セッションは持続しません。以下のスクリーンショットをご覧ください。 A.後続のサービスリソース呼び出しのためにセッションを持続させるか、またはB.フックを使用してjson応答にユーザーのパスワードまたは自動生成されたパスワードを追加し、プログラムで/login.jsonフォームのクライアント側(これは、持続しますか?) この質問では、グローバル$ userがDrupalインターフェースとサービスモジュールでどのように異なるのでしょうか?LoginTobogganを使用した同じ問題について説明します。 スクリーンショットには、「ログインデバッグ」というデバッグ行があります。これは、「/ sites / all / modules / logintoboggan / logintoboggan.module」の333行目にありますが、ここではすべてを試してみましたが... function logintoboggan_process_login($account, &$edit, $redirect = array()){ global $user; $user = user_load($account->uid); //watchdog('login debug', json_encode($account)); watchdog('login debug', json_encode($edit)); //user_login_submit(array(), array('uid' => $account->uid)); user_login_finalize($edit); // $user = user_load($account->uid); // $user->token = drupal_get_token('services'); // …

3
D7で別のユーザーをプログラムでログアウトするにはどうすればよいですか?
私たちのサイトには、クライアントアカウントがあり、それぞれにそのアカウントに属するスーパー管理者とサブユーザーがいます。 特権管理者がサブユーザーにログアウトを強制できるようにしたい。セッション情報がRedis、Memcache、またはデータベースのどちらに保存されているかに関係なく機能するDrupalでユーザーのセッションを破棄する最良の方法は何ですか? 誰かがuser_logout()を提案するように誘惑される前に、それは現在のユーザーのセッションを破壊します。現在のユーザーが別のユーザーのセッションを破棄できるようにしたいのですが。
8 sessions  users 

2
誰もログインできず、拒否されたメッセージにアクセスできません
このサイトは昨日まで機能していましたが、今は奇妙な動作をしています。 サイトには機能が作成されておらず、コードとデータベースを含むアーカイブダンプがサーバーにコピーされ、古いインストールは手動で(残念ながら)新しいものに置き換えられます。 今では、ローカルサーバーでも発生しています。 キャッシングモジュールがインストールされていません。セッションAPIもインストールされていません。 テーマは「7」に設定されています(念のため、コア管理テーマ)。 ウォッチドッグには、通常の「ユーザーxyzのために開かれたセッション」以外のエラー、警告、情報は含まれません。 設定ファイルには、特別なcookieディレクティブは含まれていません。それは決してしなかった。 サイトはphp 5.6、Apache 2.2、CentOS 6で実行されています。PHPはfast-cgiとして実行されています。いつもと同じ。 Drupal 7です。 example.com/user/loginに移動し、ユーザー名とパスワードを入力すると、フォームが正常に送信され、ページはexample.com/user/%uidにリダイレクトされます(uid 1と他のユーザーの両方が試されました)。そしてブーム!私が取得、アクセスが拒否されました。また、ユーザーはログインしていません。 どのセッションでtruncate table sessionsも、セッションテーブルを切り詰めると、一度だけログインできます。その後、uid 1でさえログインできなくなります。 また、パスワードリセットリンクを使用します(drush uli問題なくログインできるコマンドを使用します)。 すべての contribモジュールとテーマを無効にしましたが、同じ問題が解決しません。 セッションでそのような問題を引き起こしているものは何ですか?何か案は?
7 7  users  sessions 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.