2017-08-31 174 views
1

我正在做角2的oauth2。如何使用角度2進行oAuth2基本身份驗證?

這是POST URL =「http://localhost:8080/OAuth2Example/oauth/token?grant_type=password&username=bill&password=abc123」。

如何通過驗證的用戶之一,並獲得訪問令牌前端clientId和客戶端祕密?

如果在angular2或任何配置中有任何插件可用,請告訴我!

我試着像,

private getHeaders(){ 
    // I included these headers because otherwise FireFox 
    // will request text/html 
    let headers = new Headers(); 
    let auth_data = 'username=my-trusted-client&password=secret'; 
    headers.append('Accept', 'application/json'); 
    headers.append('Authorization', auth_data); 
    return headers; 
    } 

    testRequest() { 
    let data = 'grant_type=password&username=bill&password=abc123'; 
    let postResponse = this.http 
     .post(`${this.baseUrl}/oauth/token?`, data, {headers: 
     this.getHeaders()}) 
     .toPromise() 
     .then(this.mapResult); 
    return postResponse; 

}

當我執行後調用,

的XMLHttpRequest無法加載 http://localhost:8080/OAuth2Example/oauth/token?/。 對預檢請求的響應未通過訪問控制檢查:否 請求的 資源上存在「訪問控制 - 允許來源」標頭。原因'http://localhost:4200'因此不允許 訪問。該響應具有HTTP狀態碼401。

我在控制檯上看到了這個錯誤。

我有一個郵差集合捕捉來快速確定我需要什麼,我從郵差像下面實現oauth2。

enter image description here

enter image description here

這正是我需要從角2得到它了。

感謝,

+0

是'http:// localhost:8080/SpringSecurityOAuth2Example/oauth/token?/'實際顯示的文字路徑嗎?因爲'token?/'部分看起來像是一個錯誤。它也完全不符合問題中顯示的'http.get'請求代碼。該請求代碼與問題開始處顯示的「POST URL」不匹配。所以很難嘗試弄清楚這裏可能會發生什麼,但不管如果發送該請求的服務器響應用401的OPTIONS請求來訪問該路徑,那麼您將無法讓瀏覽器甚至可以嘗試POST請求 – sideshowbarker

+0

無論如何要清楚,因爲您的請求添加了授權標頭,它會觸發您的瀏覽器在您從代碼嘗試POST之前自動自動執行CORS預檢選項請求。並且錯誤消息指示預檢失敗,因爲對OPTIONS請求的響應是401而不是200 OK或204,瀏覽器需要查看才能考慮預檢成功。 – sideshowbarker

+0

Auth0有一個非常好的一步一步的文件來做到這一點和其他的東西,確切地說,你需要閱讀之前搜索第三方插件:https://auth0.com/blog/angular-2-authentication/,https:// auth0.com/docs/quickstart/spa/angular2/01-login,https://auth0.com/docs/quickstart/spa/angular2/01-login – xzegga

回答

0

如果任何插件是angular2或任何配置,請 提供建議我!

有很多不同的平臺的例子,你問的角度2,你可以按照這個鏈接,爲我工作LINK

和您的例外看起來像關於CORS。

+0

尋找插件。 – Jaccs

+0

你是否瀏覽完整頁面? – k11k2

+0

是的..他們談論JWT令牌..但這裏的問題是oauth2令牌。 – Jaccs

相關問題