0
我實現了我自己的oauth身份驗證系統並希望使用JWT令牌。 ms的實現有點令人困惑。我看到下面的散列algorithum遍佈淨如何從我的JWT令牌身份中提取信息
public string Protect(AuthenticationTicket data)
{
if (data == null)
{
throw new ArgumentNullException("data");
}
string audienceId = ConfigurationManager.AppSettings["as:AudienceId"];
string symmetricKeyAsBase64 = ConfigurationManager.AppSettings["as:AudienceSecret"];
var keyByteArray = TextEncodings.Base64Url.Decode(symmetricKeyAsBase64);
var signingKey = new HmacSigningCredentials(keyByteArray);
var issued = data.Properties.IssuedUtc;
var expires = data.Properties.ExpiresUtc;
var token = new JwtSecurityToken(_issuer, audienceId, data.Identity.Claims, issued.Value.UtcDateTime, expires.Value.UtcDateTime, signingKey);
var handler = new JwtSecurityTokenHandler();
var jwt = handler.WriteToken(token);
return jwt;
}
,但似乎無法找出我怎麼能然後提取出令牌
用於「as:AudienceId」和「as:AudienceSecret」用於什麼目的? – Rahul
@Rahul AudienceId相當於依賴方名稱,換句話說就是JWT令牌的使用者。在上面的保護代碼中,我們使用簽名密鑰爲特定的audienceId創建令牌。當你嘗試消耗令牌時,這2個必須是已知的。 – cleftheris
謝謝。您能否給出一個示例代碼,用於從.c#客戶端中使用JWT令牌。此外,如果您可以提供示例代碼來從RestSharp客戶端使用它。我應該在身份驗證過程中將「AudienceId」和「AudienceSecret」從客戶端傳遞到服務器嗎?我怎樣才能訪問客戶端的索賠? – Rahul