0

TL;博士我想實現的OAuth我科爾多瓦的應用程序(在VS2013多設備的混合應用程序),但與得到的令牌回的PhoneGap的oauth2重定向問題

對於我的實習項目,我已經取得問題一個基本的oauth服務器並將其添加到現有項目中。當移動應用程序將用戶發送到身份驗證頁面時,他會沿着他的ID令牌和重定向URL發送消息。

生成身份驗證和訪問刷新令牌。我只有將它們發送迴應用程序時遇到問題。我localhost都是我的應用程序和身份驗證網站,由於我不能真正測試它的某些方面,我認爲。我無法使用Hyper-V模擬器,因爲他無法鏈接到本地​​託管網站。

我使用下面的JS代碼從我的科爾多瓦應用程序中提取網址,我不知道這是否可以重定向到用戶的有效網址。

http://www.thecodeship.com/web-development/javascript-url-object/

我用這個代碼給用戶發送至認證頁面。

function goToAuth() { 

var test = urlObject(); 
//Put the url in the demo ID element 
appUri = test.protocol + test.host + test.hash + test.pathname + test.search; 
var redirecturl = 'http://localhost:50587/Login/IndexMobile?token=gh0BcoTaNUu6fc3GK8jN&redirecturi='+ appUri; 

var ref = window.open(redirecturl, '_blank', 'location=yes'); 

ref.addEventListener('loadstart', function (event) { alert('start: ' + event.url); }); 
ref.addEventListener('loadstop', function (event) { alert('stop: ' + event.url); }); 
ref.show(); 
ref.addEventListener('loaderror', function (event) { alert('error: ' + event.message); }); 
ref.addEventListener('exit', function (event) { alert(event.type); });} 

在asp.net中,我使用這一行代碼將用戶重定向回提供的redirectUri。

return Redirect(redirectUri); 

他給了我一個「不是一個有效的路徑」錯誤,雖然,但我認爲這是由於應用程序正在通過當地紋波主持。

現在我知道需要發生的事情是,當用戶完成身份驗證時,該頁面應該關閉,他應該回到應用程序,並且應用程序需要能夠訪問令牌。我首先想到我可以通過將令牌重定向到用戶,但我無法測試這種方法。

我也讀了一些關於JS回調的內容,但我對此並不瞭解,也不知道如何在我的cordova應用中使用它。

回答

0

認證正在下降,因爲在服務器中註冊的回調URI或重定向URI與Ripple使用的URI不匹配。在CPT 3.0和Visual Studio 2015 Preview中,Visual Studio選擇範圍從4400到4444的端口,並自端口號。在4400和4444之間隨機選擇,事先很難知道端口。

因此,最好使用模擬器或OAuth設備。