2017-02-08 4 views
0

は、このチュートリアルを自分の道を働いた:ユーザーはどのように認証され、取得されますか?

http://bitoftech.net/2015/02/16/implement-oauth-json-web-tokens-authentication-in-asp-net-web-api-and-identity-2/

私は今、直立ソリューションを持っていると私はJWTのトークンを発行する(私は「ログイン」との考えを)およびこれらのトークンを渡すことによって要求を認証することができますその後の呼び出し中に。

  • が私のコードにそのユーザが利用可能にするデータベース
  • からユーザーを取得する認証済みとしてユーザーを認識し
    1. :私は[承認]属性がどのようにあるのは明らかではないよ何

    2. 元のロジックの後に余分な認証ロジックを追加したい場合、どのように認証プロセスに追加するのですか

    [編集]私は、JWTトークンがユーザーの識別に使用されていることを理解していますが、これはどのように起こっているのか分かりません。私はミドルウェアがやっていることも理解していますが、これの動作は明確ではありません。

  • 答えて

    1
    1. [許可]属性では、コントローラが呼び出される前にAuthorizationFilterがフィルタチェーンに追加されます。 This articleはそれを示しています。 ConfigureOAuthTokenConsumption(チュートリアルのステップ6)を呼び出して、ミドルウェアにトークンの検証と処理に必要な情報を提供します。

    2. 認証は、すなわちユーザ名とパスワードを確認し、トークンはトークンのみが表示されます

      public override async Task 
      GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { 
      ... 
          ApplicationUser user = await userManager.FindAsync(context.UserName, context.Password); 
      ... 
      } 
      

      AuthorizationFilterに発行されたトークン自体

    3. の情報に頼る前にのみ起こりますthis blog postはあなたがユーザ名にアクセスする方法の例を示します:

      var currentPrincipal = ClaimsPrincipal.Current; 
      string userName = "Anonymous"; 
      if (currentPrincipal.Identity.IsAuthenticated) 
      { 
          userName = currentPrincipal.Identity.Name; 
      } 
      

      中旬dlewareはトークンから情報を取得します

    4. トークンが発行される前に自分自身のロジックを追加するか、トークンを受け取ったときに追加ロジックが必要な場合は独自のAuthorizationFilterを追加することができます。 3の下にリンクされたブログ記事はその例を示しています。

    関連する問題