私はauth
で2つのAPIを使用しています:
api/auth/newtoken
:ユーザーの検証に成功し(DBでのユーザー名とパスワードのチェック)、token
(3日で有効期限切れ)とrefreshToken
を返します。api/auth/updatetoken
:トークンの有効期限が切れたら、refreshToken
を指定してこのAPIを呼び出し、新しいtoken
を取得します。api/auth/updatetoken
APIを保護するにはどうすればよいですか?現在のところ、これらのAPIはAndroidアプリケーション用であり、アプリケーションを逆コンパイルすると、これらのAPIを簡単に取得できます。
このAPIを保護するためのより良いアプローチは何ですか?
APIに接続できるすべてのデバイスを制御しない限り、APIを「保護」する方法はありません。インターネット経由で接続するユーザー所有のデバイスによる使用を許可するAPIの場合、誰でも何でも送信できると想定する必要があります。
ここには2つの選択肢があります-
個人的には、Webブラウザークライアントがない場合(および1つでも-Webブラウザークライアントに有効期限切れのトークンを与えるだけ)、最初のものをお勧めします。トークンは、クライアントのデバイスにのみ存在する必要があり-デバイスのキーチェーンに格納されているため、安全でなければなりません。一方、誰かがそれを傍受した場合は、自分でupdatetokenを呼び出して、期限切れを停止できます。