PHP 開発アプリのインターフェイス、ユーザー ログインの問題
ログイン成功後、以前のユーザーログインインターフェースがサーバーに保存されていない状態ですsession
アプリ側に保存されている可能性があります。したがって、ユーザーが正常にログインした場合でも、特定のインターフェイスを調整するときは、サーバーの user_id
から取得するのではなく、session
をパラメーターとして渡す必要があります。
今日はログインと登録のインターフェースを変更したいと思います。私の同僚は、アプリのインターフェースには session
の概念がないと言いましたが、サーバーにユーザーセッションを保存する他の方法があるべきだと常々感じています。
そこでマスターの皆さんにお聞きしたいのですが、
リーリーみなさん、ありがとうございました!
jwt を見てみましょう
自己完結型: ペイロードには、ユーザーが必要とするすべての情報が含まれています
トークンと有効期限を設定し、トークンを使用して検証します
まず、ログイン インターフェイスを作成します。アプリはこのインターフェイスを呼び出し、渡されたユーザー名とパスワードを検証してトークンを返します。
トークンを保存するテーブルを作成し、そのテーブルには user_id トークン、expire_data およびその他のフィールドが格納されることに注意してください。
今後、彼が他のインターフェースをリクエストするたびに、このトークンを持ってくるだけで済み、あなたはトークンを検証できます。
渡されたトークンは暗号化され、期限切れになり、一意であることが保証されます。これは基本的にそれだけです。
1. リクエストヘッダーにはユーザー
username
和password
,到服务器端做验证,通过才继续下边业务逻辑。优点:防止了服务器端
api
が含まれており、任意に呼び出されます。短所: ユーザー名とパスワードは毎回交換され、やり取りの量は多く、パスワードの平文送信は安全ではありません。
2. 最初のリクエストには
すべてのリクエストにusername
とpassword
が必要です。検証後、cookie
がクライアントに送信されます。username
和password
,验证通过,发送cookie
到客户端,app
保存cookie
值。每次请求带上
cookie
。优点:和
pc
cookie
を保存します。コード>値。cookie
を含めます。利点:
一部のpc
でのブラウザ認証の原理は同じです。app
上記の2点において、登録ユーザーのみがビジネスロジックにアクセスできます。には、登録データを必要としない API が多数あります
生成ルールを開発します。クライアントはこの文字列を生成し、サーバーはリクエストの受信時にこの文字列を検証します。 🎜🎜token
3. サーバーとクライアントの両方で共有されるいくつかの共通属性に基づいてランダムな文字列を生成する
これは、さまざまなユーザーが認可インターフェースを通じてさまざまなトークンを取得し、トークンの有効期限を設定し、クライアントが各リクエストのヘッダーにトークンを入れて、定期的にトークンを更新することができます。
トークンを使用して、クライアント Cookie に保存されている従来の session_id を置き換えます。その後、トークンは Redis などのデータベースのキー名として使用され、キーの値はユーザー UID であり、session_id は組み込みのメソッドを通じてシミュレートできます。有効期限のメカニズム
当社にはトークンと有効期限があり、ログインするたびにトークンが更新されます
迷ったときに当サイトで質問したことです
あなたの同僚は、アプリにはセッションの概念がないと言っていますが、それは正確ではないと思います。私の以前の質問がお役に立てば幸いです。
ログインとは、サーバーが成功したログイン ID を生成し、クライアントにログイン ID を返し、サーバーがログインによってユーザー情報を検証することです。
安全なのは
access_token
です。この点については、WeChat の API インターフェースをご覧ください。簡単な方法は
user_id
;