2

だから、私はWebアプリのログイン機能を作成しようとしています。

ログインは JSON インターフェイスによって処理されます。ユーザーはチェックされたユーザー名とパスワードを入力し、それらが正しい場合、JSON インターフェースはトークンを送り返します。ここからセッションを開始する必要があると思います。

<script>  
  $(document).ready(function(){
   $("#loginForm").validate({
    rules: {
      username: {
        required: true,
        digits: true
      },
      password: {
        required: true
      }
    },

    submitHandler: function(form) {
      data = JSON.stringify({
        "jsonrpc": "2.0",
        "method": "login",
        "params": {
          "params": {
            "username": $('#username').val(),
            "password":  $('#password').val()
          }
        }
      });

      $.ajax({
        url:"http://domain.local:1234/trip",
        type:"POST",
        crossDomain: true,
        dataType: "json",
        data : data,
        headers: {
          'Content-Type': "application/json; charset=utf-8"
        },
        success: function(data){
          if(data.result.token != null) {
            window.location.href = "functions/login.php?token=" + data.result.token;
          }

          else $("#result").html("Invalid username and/or password."); 
        }
      });
      return false;
      }
    });
  });
</script>

login.phpは、セッション処理が発生する場所です (右?)。できれば、Cookie を使用したくありません。これまでのところ、これは私が持っている唯一のものです (これはセッションでの私の最初の試みです)。

<?php
  session_start();
  $token = $_POST['token'];
?>

ユーザーがログインしたら、overview.php に送信する必要があります。login.phpこれは、トークンがあるときにファイルから実行する必要がありindex.phpますlogin.phpか?

また、ユーザーがアクセスしたページにアクティブなセッションがあるかどうかを確認するにはどうすればよいですか? JSON インターフェイスへの新しい呼び出しを行うには、すべてのページでトークンが必要です。

最後に、ユーザーがログアウトする必要がある場合は、ユーザーをlogout.phpまたはそのような場所に移動して、そこでセッションを終了するだけだと思いますか?

手伝ってくれてどうもありがとう!

4

1 に答える 1

1

これらは、単純な (安全ではない) ログイン システムに使用できる基本的なセットアップです。

login.php:

<?php
    session_start();
    if(isset($_GET['token']) && !empty($_GET['token']))
        $_SESSION['token']== $_GET['token'];

    if(isset($_SESSION['token'] && [OTHER CHECKS YOU MIGHT WANT TO DO TO SEE WETHER HE IS LOGGED IN]){
        header('Location: overview.php');
    }
?>

logout.php

<?php
    session_start();
    unset($_SESSION['token']);
    //redirect to desired page
?>

また、ログインしているユーザーにのみ表示したいすべてのページで、追加する必要がありsession_start();$_SESSION['token']. 彼がログインしていない場合は、別の場所にリダイレクトする必要があります。

于 2012-10-31T11:29:13.120 に答える