2017-04-05 8 views
0

GithubFacebookのログインをシングルページのWebアプリケーションに持っていきたいと考えています。サーバーは私のコントロール下にあります。Oauth2にclient_idとclient_secretを格納する場所は?

彼らは、ファイル内 client_idclient_secretを保存このチュートリアル https://spring.io/guides/tutorials/spring-boot-oauth2/

バックエンドデータベースにこれらの2を保存すると便利ではないでしょうか? プログラマではない人が、新しいサービスにWebアプリケーションを登録したいと思っている人は、databaseを簡単に開くことができます。彼はバックエンドのプロジェクトコードにクロールする必要はありません。

もしそうでなければ、これらの2はどこに保存されるべきですか?

+1

はいclientIDとclientSecretはDBに格納する必要があります。彼らはFacebookの単一ページのWebアプリケーションを表現し、アクセストークンを生成するために使用され、このアクセストークンは、ユーザーがFacebookのユーザー名とパスワードを使って使用します。 –

+0

この2つの情報を1つのファイルに保存したチュートリアルは単なる例にすぎず、実用的なものではありません。 – Oleg

+0

@ AnuragDadheechさんのコメントに同意しません。私は、信用状がプロパティファイルに格納されている複数のプロダクションシステムを知っています。主に利便性が理由です。唯一のことは、環境ごとに異なるプロパティファイルがあることです。 application-dev.properties、application-stating.propertiesと言ってください。本番システムでは、デフォルトのapplication.propertiesが使用されます。 – Yasin

答えて

1

利便性について話したら、これらをプロパティファイルに保存するとよいでしょう。これにより、起動時にプロパティをアプリケーションに簡単にロードできます。値を変更した場合は、アプリを再起動するだけで、新しい値が反映されます。

プログラマー以外の100%のコメントを理解しているかどうかわかりません。しかし、IMOは、プログラマでない人にとって、ファイルを変更することは、DBを変更するよりはるかに簡単です。

クライアントIDとクライアントシークレットは、ソーシャルメディア(Facebookなど)に登録されているアプリケーションの認証情報を表しています。

はい、これらもDBに保存できます。しかし、DBからこれらの値をフェッチしてアプリケーションにロードするコードを記述する必要があります。

+0

非プログラマについて、私は、このチュートリアルではgithubとfacebookを扱う別個のJavaコードがあるので、ソーシャル・ログインのあらゆるタイプを扱うコードを書く方法があるかどうか尋ねたいと思います。ニュースのような新しいサービスにWebアプリケーションをインストールすると、バックエンドサーバーに新しいコードを追加する必要があります。そして、これは私の痛みのようです。 (私はこれを初めてやっているので、何をすべきか分かりません:) – Oleg

+1

資格情報を保存する場所に関係なく、追加のソーシャルメディアをサポートするための追加コードを書く必要があります。私は、追加の資格情報を追加するだけで、すべてがうまく動作するという考え方は考えられません。それが痛みなら、それはあなたが改善していることを意味します:) – Yasin

関連する問題