私はDropwizardを使ってWebアプリケーション用のRESTfulバックエンドを開発しています。さて、フロントエンドを開発し、私は中にユーザーをログインする必要があり、私は例えば、@Authアノテーションを使用しています。基本認証は正しい選択ですか?
@POST
public void createEvent(@Auth User user, @FormParam("startTime") @NotNull @Min(0) Long startTime,
@FormParam("endTime") @NotNull @Min(0) Long endTime) {
validateEvent(startTime, endTime);
eventDAO.insertEvent(new Event(Util.convertMillisToDate(startTime), Util.convertMillisToDate(endTime), user.getName()));
}
をユーザーがログインしていることを確認するために、すべてがうまく罰金とあるが、これは使用しています。 http基本認証。結果として、アクションを実行するたびに、ユーザー名とパスワードをサーバーに送信する必要があります。これは、クライアントにパスワードをどのように保存するのですか?クライアント上のパスワードを(おそらく塩と一緒に)ハッシュする必要がありますか。クッキー、それはコンピュータにアクセスできる人々にとって平文ではありませんか?私はユーザーのアクセストークンを使っているべきですか?
したがって、生涯にわたってusername-> user_tokenの関係を保存しますか? – Amnestic
@Amnesticはい、それは基本的にそれです。 – Frxstrem
@Amnesticまた、トークンが長くてランダムに生成されるように(可能であれば、好ましくは暗号のランダム性を持たせて)、ユーザーがユーザーにアクセスできると推測することはできません。 – Frxstrem