私は認証のためにAuth0とバックエンドに.netコアアプリケーションを使用しているangular2フロントエンドを持っています。すべては、安全なAPI呼び出しを強制することと一緒に働いています。auth0でユーザを特定する方法jwt
認証されたユーザーをバックエンドで識別する最も良い方法は何ですか。
トークン
var bearerToken = Request.Headers["Authorization"].ToString()
のソーシャルID:私はこれを行うと考えることができむしろ不器用な方法は、私は、次のいずれかにユーザーIDを接続することを可能にする「setUserToken」API呼び出しを公開することです
var socialId = User.Claims.Where(c => c.Type == "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier").First().Value
そうすれば、後続のAPI呼び出しで、私はできるだけでfindUserByToken()
またはfindUserBySocialProviderOpenId()
私はこの問題をはっきりと解決していないと確信しています。どんな指針も大変ありがとうございます。
レスポンスありがとうRodrigo :)私のサブクレームは、実際に、アイデンティティプロバイダに伝えます。上記の例では '' 'socialId == google-oauth2 | [idNumber]' '' ですが、私の主な質問はAPI内のユーザーを特定する方法でした。 –
私はフォローしているかどうかわかりません - あなたのAPIが 'sub'クレームを受け取ったので、あなたが誰であるかを識別できます。あるいは、実装固有の質問をもっとお願いしていましたか? –
これはまさに私が探しているものです:)私の場合、サブクレームはGoogle IDです。特定のユーザーに対してサブクレームをDBに保存するだけですか?私は最近、Java EEのバックグラウンドから来ています。だから、.NETに欠けている賢い選択肢があれば、100%ではありません。 –