从angular2调用oauth2登录服务

从angular2调用oauth2登录服务,angular,oauth-2.0,Angular,Oauth 2.0,有人能帮我用angular 2或4调用oauth2登录服务吗 我能够成功地从rest客户端调用它们,但我始终没有任何线索 从js调用 post请求是:: 我必须使用相同的请求设置基本身份验证客户端Id和密码 提前感谢。我想您正在编写一个调用API的单页应用程序,对吗 有关单页应用程序登录的详细信息 我一直在写一个基于教程的博客,你可能会觉得有用。博客非常详细,但首先要了解的是活动部分: Angular应用程序使用OAuth 2.0隐式流来登录用户 授权服务器将安全性从SPA外部化 您的SPA在

有人能帮我用angular 2或4调用oauth2登录服务吗

我能够成功地从rest客户端调用它们,但我始终没有任何线索

从js调用

post请求是::

我必须使用相同的请求设置基本身份验证客户端Id和密码


提前感谢。

我想您正在编写一个调用API的单页应用程序,对吗

有关单页应用程序登录的详细信息

我一直在写一个基于教程的博客,你可能会觉得有用。博客非常详细,但首先要了解的是活动部分:

Angular应用程序使用OAuth 2.0隐式流来登录用户 授权服务器将安全性从SPA外部化 您的SPA在登录后使用访问令牌调用OAuth 2.0安全API 一旦理解了上述分离,接下来就需要理解OAuth消息。可以从浏览此页面开始:


如果你觉得有用的话,下面有关于如何运行我的示例的后续页面,OAuth消息的详细信息等等。

经过几个小时的努力,找到了我的问题的解决方案,我只为面临相同问题的人发布了答案。确保服务器端的CORS设置

import {Injectable} from '@angular/core'
import {Http,Headers,RequestOptions } from '@angular/http'

@Injectable()
export class DashBoardService {

constructor(private http :Http){

}
public allCards(){
//?username=guest&password=guest123&grant_type=password
let username: string = 'service-account-1';
let password: string = 'service-account-1-secret';
let data ={"username":"guest","password":"guest123","grant_type":"password","client_id":"service-account-1"};
var headers = new Headers();
headers.append("Authorization", "Basic " + btoa(username + ":" + password));
headers.append("Content-Type", "application/x-www-form-urlencoded");

let options = new RequestOptions({ headers: headers });


return this.http.post("http://localhost:8989/oauth/token?username=guest&password=guest123&grant_type=password",
"",options);

}



}