Laravel認証/セッションをPHPと共有する

ケイルーカス

いくつかの単純なHTML / JavascriptアプリケーションでLaravels認証を使用しようとしています。

私がそれが理想的に機能すると思う方法はこれです:

  1. ユーザーが単純なHTMLアプリケーションにアクセスします
  2. 単純なHTMLアプリケーションには、ユーザーが認証されているかどうかを確認するPHPファイルが含まれています。そうでない場合、ユーザーはログインのためにLaravelアプリケーションに送られ、ユーザーがログインしていれば、単にアプリケーションを使用できます。
  3. ユーザーはLaravelを介してログインし、HTMLアプリケーションにリダイレクトされ、そこでこのプロセスが最初からやり直されます。

私が抱えている問題は、ユーザーがPHPスクリプトにログインしているかどうかを確認することです。Laravelsセッションが利用できない(とそれを通じ共有session_start()し、$_SESSION["auth"] = true唯一のネイティブPHPセッションのLaravelsバージョンに変数を追加します)。

これらは私が持っている設定です app/config/session.php

return array(
    'driver' => 'native',
    'lifetime' => 120,
    'files' => storage_path().'/sessions',
    'connection' => null,
    'table' => 'sessions',
    'lottery' => array(2, 100),
    'cookie' => 'laravel_session',
    'path' => null,
    'domain' => null,

);

nullドメイン全体でセッションを使用したいので、パスをに変更しました

含まれているPHPスクリプトは非常に単純で、次のようになります。

session_start();

if($_SESSION['authenticated']){
    echo "logged_in";
} else {
    header("Location: laravel/login/url");
}

Laravelsフレームワークにアプリケーションを含めるだけではないのはなぜか疑問に思われるかもしれません。これは、この単純なHTMLアプリケーションの約100の異なるバージョンが、10のドメイン名に散在しているためです。現時点では、すべてのドメイン名に独自の(非常に古くて安全でない)ログインスクリプト(新しいドメインが作成されるたびにコピーされます)。そのため、Laravelを使用して1つのデータベースと1つの管理システムでこれを一元化したいと思います。

うまくいけば、ここの誰かがこの問題を修正する方法または回避する方法を知っています(おそらく、PHPスクリプトでLaravelsセッションパッケージを使用する必要がありますか?)。

berrberr

Laravelはセッション管理にストレージドライバーを使用します。つまり、PHPの$ _SESSION変数を介してコンテンツにアクセスしようとしても機能しません。あなたの設定はデフォルトのセッションドライバーを「ネイティブ」に設定しています。これは(私が思うに)ファイルセッションドライバーです。つまり、すべてのセッションデータはapp / storage / sessionsに保存されます(セッションデータはJSONのような構造で保存されると思います)。セッションドライバの詳細については、こちらをご覧ください

したがって、あなたの質問に答えるために、これを解決するために頭に浮かぶいくつかの方法があります。私がおそらく行うことは、ユーザーがログインしているかどうかを単にチェックする単純なカスタムセッションインターフェイスを実装することです。laravelフォームを使用してユーザーを認証するときに、ユーザーのセッションをログインに設定できます。例えば:

if (Auth::attempt(array('email' => $email, 'password' => $password))) {
    // Set your user's session to logged in here. You will have to implement some 
    // system to do so, the below code is INSECURE/NOT USEABLE
    $_SESSION['user'] = $email;
}

そして、ユーザーがログアウトしたときに逆の操作を行います。上記のように、ユーザーのセッションをログインに設定するだけでは、さまざまな理由で非常に安全ではありません。最も明白なのは、セッションハイジャックです。これこのテーマに関する優れた読み物です)安全なセッション管理システムを実装できる場合(そして実際には、難しくはなく、軽量になるはずです)、この戦略が最善の策だと思います。

別の方法は、セッションドライバーとしてCookieを使用しようとすることですが、そうすると、最初に1つのCookieからLaravelセッションIDを取得し、それを使用して別のCookieを読み取る必要があるため、複雑さとゴミの層が増えます...エレガントなソリューションではありません。

したがって、最初に説明した方法を使用して、シンプルで安全なセッション管理システムを実装することをお勧めします。これがお役に立てば幸いです。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Laravelでセッションと認証を維持する

分類Dev

nodejsexpressとlaravel4セッションを共有する

分類Dev

PHPセッションをJavascriptと共有する

分類Dev

ドメイン共有セッションが認証を妨げる

分類Dev

SSHで認証する前に共有セッションキーを生成するのはなぜですか?

分類Dev

Laravelセッションをノードと共有する方法は?

分類Dev

Laravelで認証後にセッションを配置する方法

分類Dev

Laravelにセッション認証のみを配置する方法

分類Dev

セッションデータを共有するsocket.io認証、io.use()の仕組み

分類Dev

PHPとノード間でセッションを共有する

分類Dev

FileSystemを使用してNode.jsと共有するPHPセッション?

分類Dev

同じセッションを共有するLaravel

分類Dev

CorePhpとCodeIgniterの間でセッションを共有する

分類Dev

HTTP認証とPHPセッションを組み合わせる?

分類Dev

PHPのサブドメインでセッションを共有する

分類Dev

PHPでfile_get_contentsを使用する場合のセッション認証

分類Dev

OAUTHJWTと共有シークレットを使用して外部Webアプリケーションを認証するWindowsServer 2016 AD FS 4.0

分類Dev

AndroidのwebviewとHTTPURLConnection間でセッションを共有する

分類Dev

ログインセッションを共有する方法は?

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

RedisセッションでSpringBoot認証を使用する方法

分類Dev

weblogicでセッションを共有する方法

分類Dev

Symfonyアプリ間でセッションを共有する

分類Dev

App laravelのセッションとセッション認証をパッケージに渡す方法とその逆の方法は?

分類Dev

PHPセッションが有効かどうかを確認する方法は?

分類Dev

ExpressJS / PassportJS:認証とセッション

分類Dev

Laravel:複数のドメインでセッションデータを共有する

分類Dev

Laravelルートページでセッションデータ(認証)を使用する方法

Related 関連記事

  1. 1

    Laravelでセッションと認証を維持する

  2. 2

    nodejsexpressとlaravel4セッションを共有する

  3. 3

    PHPセッションをJavascriptと共有する

  4. 4

    ドメイン共有セッションが認証を妨げる

  5. 5

    SSHで認証する前に共有セッションキーを生成するのはなぜですか?

  6. 6

    Laravelセッションをノードと共有する方法は?

  7. 7

    Laravelで認証後にセッションを配置する方法

  8. 8

    Laravelにセッション認証のみを配置する方法

  9. 9

    セッションデータを共有するsocket.io認証、io.use()の仕組み

  10. 10

    PHPとノード間でセッションを共有する

  11. 11

    FileSystemを使用してNode.jsと共有するPHPセッション?

  12. 12

    同じセッションを共有するLaravel

  13. 13

    CorePhpとCodeIgniterの間でセッションを共有する

  14. 14

    HTTP認証とPHPセッションを組み合わせる?

  15. 15

    PHPのサブドメインでセッションを共有する

  16. 16

    PHPでfile_get_contentsを使用する場合のセッション認証

  17. 17

    OAUTHJWTと共有シークレットを使用して外部Webアプリケーションを認証するWindowsServer 2016 AD FS 4.0

  18. 18

    AndroidのwebviewとHTTPURLConnection間でセッションを共有する

  19. 19

    ログインセッションを共有する方法は?

  20. 20

    RedisセッションでSpringBoot認証を使用する方法

  21. 21

    RedisセッションでSpringBoot認証を使用する方法

  22. 22

    RedisセッションでSpringBoot認証を使用する方法

  23. 23

    weblogicでセッションを共有する方法

  24. 24

    Symfonyアプリ間でセッションを共有する

  25. 25

    App laravelのセッションとセッション認証をパッケージに渡す方法とその逆の方法は?

  26. 26

    PHPセッションが有効かどうかを確認する方法は?

  27. 27

    ExpressJS / PassportJS:認証とセッション

  28. 28

    Laravel:複数のドメインでセッションデータを共有する

  29. 29

    Laravelルートページでセッションデータ(認証)を使用する方法

ホットタグ

アーカイブ