我正在做角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。
這正是我需要從角2得到它了。
感謝,
是'http:// localhost:8080/SpringSecurityOAuth2Example/oauth/token?/'實際顯示的文字路徑嗎?因爲'token?/'部分看起來像是一個錯誤。它也完全不符合問題中顯示的'http.get'請求代碼。該請求代碼與問題開始處顯示的「POST URL」不匹配。所以很難嘗試弄清楚這裏可能會發生什麼,但不管如果發送該請求的服務器響應用401的OPTIONS請求來訪問該路徑,那麼您將無法讓瀏覽器甚至可以嘗試POST請求 – sideshowbarker
無論如何要清楚,因爲您的請求添加了授權標頭,它會觸發您的瀏覽器在您從代碼嘗試POST之前自動自動執行CORS預檢選項請求。並且錯誤消息指示預檢失敗,因爲對OPTIONS請求的響應是401而不是200 OK或204,瀏覽器需要查看才能考慮預檢成功。 – sideshowbarker
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