如何获得角度为2的令牌(oauth2)

时间:2017-08-25 19:56:01

标签: angular typescript oauth-2.0

我对角度2的服务有问题,我想在春天从apiREST获得一个令牌,服务器正在工作,如果我用邮递员提出请求它有效!但我不知道如何在角度2上发出请求,我在角度2上有这个代码

getToken(login:Login)
{
  let headers = new Headers();
  let urlSearchParams = new URLSearchParams();

  // urlSearchParams.append(this.GRANT_TYPE,"client_credentials");
  urlSearchParams.append(this.GRANT_TYPE,"password");
  urlSearchParams.append(this.USERNAME, ""+login.usr);
  urlSearchParams.append(this.PASSWORD, ""+login.pwd);
  urlSearchParams.append("client_id","my-trusted-client");

  //headers.append("Content-Type","application/json");
  headers.append('Content-Type', 'application/x-www-form-urlencoded');
  // headers.append('Authorization', 'Bearer ' + btoa(plainClientCredentials));
  headers.append("Authorization", "Basic "+ btoa("my-trusted-client:secret"));

  console.log(headers);

  let url = `${this.URL_OAUTH}/${this.GET_TOKEN}`;


  let body = urlSearchParams.toString()

  console.log("Esta es la url: "+url+'?'+body);

  return this.http.post( url, body ,{ headers })
  .map(res => {

  console.log(res);
//  return res;
  let token = res.json() && res.json().access_token;

            if (token) {
                // set token property
                this.token = token;

                // store username and jwt token in local storage to keep user logged in between page refreshes
                localStorage.setItem('token', JSON.stringify({token: token}));

                // return true to indicate successful login
                return res;
            } else {
                // return false to indicate failed login
                return false;
            }
  }
  ,error => {

       console.log(error.json());
   });
}

服务器返回状态码401,我不知道如何构建标头以向oauth2发送请求

0 个答案:

没有答案