2

申し訳ありませんが、これに関連するすべてのトピックを読みましたが、この初心者はまだ混乱しています。私が達成しようとしていることの簡単な要約を始めさせてください... 私はクイズを作成しました。リーダーボードを追加しているので、一意になるようにユーザー名とパスワードまたはメール アドレスを作成する必要があります。phpmysql を使用して登録関数とログイン関数を作成することができましたが、それはすべてアプリで美しく機能します。ただし、ユーザーがアプリを開くたびにログインする必要はなく、ユーザーの詳細を記憶する必要はありません。android sdk のアカウント マネージャー機能を使用して、mysql を廃棄する必要がありますか? それとも、すでに持っているものを変更する必要がありますか?ログインにphpmysqlを使用する必要さえありますか? リーダーボードに使用する必要があることを認識しています。私を正しい方向に向けるための助けは大歓迎です。

乾杯

4

2 に答える 2

3

Cookie の使用方法と同様のセッション システムを使用します。

Android デバイスが接続されると、PHP で次のようになります。

  • 単純な「セッション」変数を作成します。
  • データベース内のセッション変数に対して電話の署名を記録する
  • セッション変数を android に返します。

Android の場合:

  • セッション変数を電話機のローカル データ ファイルに保存します。

後続の呼び出しの場合:

  • Android は、電話 ID とともにセッション変数を (ローカル ファイル ストレージから) PHP に送信します。
  • PHP は、セッション変数が有効であることを確認し、電話署名が一致することを確認します。もしそうなら、あなたは同じセッションを持っています。一致しない場合は、新しいセッションを作成します (そして電話に送り返します)。

ユーザーが「ログオン」したとき

  • user_id と、ユーザーがログオンした事実を PHP のセッション変数に保存します。
  • 次に、セッション変数が電話から送信されると、操作なしで user_id を知ることができます。
  • ユーザーがログオフした場合は、それをデータベースに記録するだけです(セッションからuser_idのリンクを解除します)

アプリを閉じてもファイル ストレージは持続し、電話 ID は変更されないため、PHP は、アプリが閉じられた後でも、接続中のユーザーを常に認識します。

于 2012-07-27T00:30:25.560 に答える
0

ロビーの答えは素晴らしいですが、少なくとも短期的には、アプリケーションにとってやり過ぎのように思えます。より簡単な解決策は、セッションごとに共有設定でブール値を保存することです。

http://developer.android.com/guide/topics/data/data-storage.html#pref

Shared Preferences は、セッション間で変数を保存し、簡単に取得できます。あなたの場合、ログインが成功した場合、ブール値 true を保存します。次回アプリケーションが開始されたときにブール値をフェッチし、true の場合、ログインは必要ありません。そのような変数がない場合、または false (前回のログイン失敗/ユーザー ログアウト) に設定されている場合は、ログインを要求してください!

幸運を

于 2012-07-27T02:22:16.027 に答える