2015-12-17 1 views
9

モバイルアプリ(アンドロイドとアイオス)やウェブサイト(asp.net MVCで作成)を使用してFacebook/Googleでログインできるようにしたい...モバイル/ウェブデータストアにfacebookとgoogleを登録して

モバイルアプリケーションとウェブサイトで認証を行うには、データベースをどのように格納する必要がありますか? userId、google/facebookトークン?

ユーザー情報を保存する方法がわからない。 これをOWINと組み合わせるべきですか?私はasp.netのアイデンティティについてはあまり知らないが、サードパーティーのプロバイダーとかなり正直なことを見てきた....質問は、初めてモバイルアプリケーションからログインすると、プログラムで新しいユーザーをデータベースに追加する必要がありますか?

これまでのところ私は、これが最良のリンクのように思えると思う:http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

が、私はtheresの簡単な方法を望んでいます。

イム...私はその場合、Google/FBのユーザーがログインして、ここで何をする必要がありますどのような

をグーグル/ FBトークンを取得し、ユーザのIDを取得するには、サーバーに送信しますこれらのユーザーは同じユーザーとして認識されます。

MSはASP.Net Identityを使用してWeb用のソーシャルログインを設定したようですが、モバイルでSQL Serverデータベースを使用してユーザー/メンバーの詳細を保存する方法を無視しています...

ちょうど1

+0

モバイルでは、アプリケーションでWeb APIを組み込む必要があります。 –

答えて

2

として、モバイルとウェブのためのユーザーを管理するための最善の方法をうまくしようとしているこのリンクは、あなたがしてデータベースに格納する必要がどのようなhttp://www.asp.net/mvc/overview/security/create-an-aspnet-mvc-5-app-with-facebook-and-google-oauth2-and-openid-sign-on

を探しているすべてのものを記述しますあなたのデータベースに既に存在するかどうかを確認するために、あなたが得る応答から得ることができますFacebookまたはGoogleは、ユーザーの資格情報が確認された後、Facebook & Googleは応答でユーザーの詳細を返す必要があります。メールID、生年月日などのように、これらの詳細をデータベースに保存することができ、すべてのログイン時にユーザーが既に存在するかどうかをチェックし、それに応じて登録します。対応しています

詳細は別のポストに記載されているWebApi ASP.NET Identity Facebook login

public class FacebookLoginModel 
{ 
    public string token { get; set; } 
    public string username { get; set; } 
    public string userid { get; set; } 
} 

public class FacebookUserViewModel 
{ 
    public string id { get; set; } 
    public string first_name { get; set; } 
    public string last_name { get; set; } 
    public string username { get; set; } 
    public string email { get; set; } 
} 
1

それはで、Googleのログインのために、比較的簡単です。あなたは、Googleがために返され、ローカル・データベースにユニークなIDを格納するため 最も簡単な方法がありますあなたがそれを使って認証する各アカウント。

サインインインテントが成功した後でgetSignInAccountメソッドを呼び出すことができます。

Auth.GoogleSignInApi.getSignInResultFromIntent(data); 
GoogleSignInAccount acct = result.getSignInAccount(); 
String personName = acct.getDisplayName(); 
String personEmail = acct.getEmail(); 
**String personId = acct.getId();** 
Uri personPhoto = acct.getPhotoUrl(); 

人が電話からか携帯電話からサインインしても、それは同じ人物であることがわかります。詳細はhttps://developers.google.com/identity/sign-in/android/people

誰でも新しいユーザーがログインするたびにデータベースにプログラムを保存する必要があります。そのため、残業を認証するための追加フィールドとしてpersonIDを保存する必要があります。

関連する問題