簡體   English   中英

授權和應用服務器-無ajax。 如何使用承載令牌?

[英]Authorization and Application Server - no ajax. How to use bearer tokens?

我有一個具有所有用戶帳戶的授權服務器,並且我的應用程序服務器具有MVC5控制器,它自己的獨立數據庫和視圖。

我可以使用HttpClient從授權服務器獲取承載令牌:

        using (var client = new HttpClient())
        {
            var result = await client.PostAsync(BuildActionUri("/Token"), new FormUrlEncodedContent(new List<KeyValuePair<string, string>>
            {
                new KeyValuePair<string, string>("grant_type", "password"),
                new KeyValuePair<string, string>("userName", userName), 
                new KeyValuePair<string, string>("password", password)
            }));

            string json = await result.Content.ReadAsStringAsync();
            if (result.IsSuccessStatusCode)
            {
                return JsonConvert.DeserializeObject<T>(json);
            }

            throw new ApiException(result.StatusCode, json);
        }

現在如何存儲授權令牌,以便控制器知道用戶已被授權?

如果兩個服務器共享一個受信任的網絡,則可以通過受信任的網絡上的某些傳輸將身份驗證令牌發送到應用服務器-或-應用服務器將向身份驗證服務發出請求以驗證令牌。 但是,您必須確保該功能無法通過公共網絡使用,因為任何人都可以注入信任。

否則,如果無法建立受信任的連接,則將需要某種類型的共享數據源。 如果您別無選擇,則可以是數據庫,內存緩存,文件系統。

無論如何,都需要一種在服務器之間共享令牌及其有效期限的機制。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM