2017-11-23 10 views
0

なぜcontext.SerializeTicket()access_tokenない同じAuthenticationTokenProvider /なぜcontext.SerializeTicket()とaccess_tokenが同じではないのですか?

public override async Task CreateAsync(AuthenticationTokenCreateContext context) 
    { 
     //if (string.IsNullOrEmpty(context.Ticket.Identity.Name)) return; 

     var clientId = context.OwinContext.Get<string>("as:client_id"); 

     var refreshTokenId = Guid.NewGuid().ToString("n"); 

     var refreshToken = new RefreshToken 
     { 
      Id = refreshTokenId, 
      ClientId = clientId, 
      UserName = context.Ticket.Identity.Name, 
      IssuedUtc = DateTime.Now, 
      ExpiresUtc = DateTime.Now.AddDays(30) 
     }; 
     context.Ticket.Properties.IssuedUtc = refreshToken.IssuedUtc; 
     context.Ticket.Properties.ExpiresUtc = refreshToken.ExpiresUtc; 

     refreshToken.ProtectedTicket = context.SerializeTicket(); 

     await _cacheManager.SetAsync(refreshTokenId, refreshToken, TimeSpan.FromDays(10)); 
     context.SetToken(refreshTokenId); 
    } 

結果:?

refreshToken.ProtectedTicket = "M2NQCH_kdzOJyHj9Sc-i_WjZtwS1Tqe3WjFXf-Laja80RUw_cOIZ9IH-Bhh3rlZx64lYxj6IUILJsBNG5FPMm7edaJqYA-qEsqYJjLTSUgSEIikeiomxcQA4qK2397HwhhzwA10QNMLFAUVscEE8MzJ4kGn_qanMP-xW3YVMycQLgGBjC5pDqBd8Q1U0nHQ5Cwe1OvWrngnq06Qe5QvZfRrMppw8MyyoliqRtPyq0UU"; 

郵便集配人:

{"access_token":"jL1f5jI16pZpAmeNIvOCXe7zMEi1WT3ElOt1Tau-vfDV3iBNm6cH6oXz4XzLW2Y-2Me2Hyvl09R3vHWedlYUTiGAmFK4m75jomeqNbK2L9nnOv8-1N6iaEpB2ppT9bYLF9c77SMtmcQoLG0iBpdNu9fVObl5u5W7M5yxi6Kjq5MYdYLdzczfkaP3QA1csHdWeiuCEHf9Dw6F8XKYRpqFqUiSzFcqUW3qXcWrTF1Hfsk","token_type":"bearer","expires_in":2591999,"refresh_token":"05d7b5373b8c490fb136afe985d756ab"} 

答えて

0
  • access_tokenは、ユーザがあるときに発行されたトークンです認証された。
  • context.SerializeTicket()は、リフレッシュトークンをシリアル化します。

なぜ文脈か。 SerializeTicket()とaccess_tokenは同じではありませんか?

これらは異なるものを表すため、それぞれ異なります。

[ボーナス] refresh_tokenは、リフレッシュトークンを取得し、デシリアライズするために使用するキーが含まれています。これは、ReceiveまたはReceiveAsyncメソッド内で実行されます。

関連する問題