2014-05-23 47 views
0

首先,我使用靜態HTML和JavaScript以及C#Web API。 所以我有一個調用一個的oauth2服務器,在我的HTML文件的鏈接,說的index.html 現在是OK設置回調頁面的index.html我的oauth2回調頁面可以是相同的html頁面嗎?我如何獲得令牌?

看來工作,它被髮送到指數.html?code = 125f0 ...

這可以做或我需要一個單獨的回調頁面。是代碼,令牌?

現在我應該如何消費?JavaScript似乎沒有打回電話。 編輯,實際上的JavaScript似乎被打到在電話會議上,回來,但我沒有收到任何來自未定義:

$(function() { 
     var params = {}, 
      queryString = location.hash.substring(1), 
      regex = /(^&=]+)=([^&*])/g, 
      m; 
     while (m = regex.exec(queryString)) { 
      params[decodeURIComponent(m[1])] = decodeURIComponent(m[2]); 
     } 
     if (params.error) { 
      if (params.error == "access_denied") { 
       sAccessToken = "access_denied"; 
       //alert(sAccessToken); 
      } 
     } else { 
      sAccessToken = params.code; 
      alert(sAccessToken); 
     } 
    }); 

另外,可我的回調頁面是一個C#的Web API調用?並以這種方式發送令牌。我在猜測不,因爲你永遠不會知道用戶代理髮送了什麼,並且除非你以某種方式傳遞了一個id和使用的signalR,否則不能進行反饋。在javascript中獲取它並將令牌發送到web api似乎更好。但是,如果Web API有令牌,可以對資源進行調用嗎?

對不起,我還在學習

回答

1

OAuth2有各種「配置文件」。 「授權代碼授權」流程(您正在使用的)需要一個交換代碼令牌的服務器端組件。

單頁應用程序,通常使用隱式流。看到這裏的快速描述:https://docs.auth0.com/protocols#5(忽略對「Auth0」的引用,底層協議是相同的,無論實現如何)。

在這裏看到兩個流的更詳細說明:What is the difference between the 2 workflows? When to use Authorization Code flow?

0

對不起,這是八九不離十奇怪的問題和不良的措辭。但是我最終做的是製作一個HTML回調頁面,它接受了代碼。我在窗口中彈出OAuth2服務器頁面,然後調用我的回調頁面。然後我的回調頁面將關閉窗口並將代碼傳遞迴我的父頁面。

相關問題