Angular 4无法授权API

Angular 4无法授权API,angular,authorization,token,secret-key,Angular,Authorization,Token,Secret Key,我正在建设一个Angular 4项目,并希望它连接到手写体.io API 我的问题是如何进行秘密和密钥授权?我从未使用过需要身份验证的API,所以我有点不知所措。 我不断地犯未经授权的错误。 如何使用密钥和密码连接到API 到目前为止,我的代码是: import { HandWriteAPIPage } from './../../e2e/app.po'; import { Component } from '@angular/core'; import { Http, Response, He

我正在建设一个Angular 4项目,并希望它连接到手写体.io API

我的问题是如何进行秘密和密钥授权?我从未使用过需要身份验证的API,所以我有点不知所措。 我不断地犯未经授权的错误。 如何使用密钥和密码连接到API

到目前为止,我的代码是:

import { HandWriteAPIPage } from './../../e2e/app.po';
import { Component } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import 'rxjs/add/operator/map';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  private apiKey: string = '2ND4YD74W5Y5Z8NC';
  private apiSecret: string = '65T65J5V850RWEHE';
  private apiURL: string = 'https://api.handwriting.io/handwritings'

  data: any = {};

  constructor(private http: Http){

    this.getData();
    this.getHandWrite();
  }

  getData(){
    return this.http.get(this.apiURL)
      .map(res => res.json());
  }

  getHandWrite(){
    this.getData().subscribe(data => {
        console.log(data);
    });
  }

对手写API的API请求需要在每个请求中附加一个基本授权标头。在发出请求之前,您必须将这些凭据附加到标头

Angular在Http模块中有一个类,可用于实现设置自定义头/授权:

您的代码可能如下所示:

import { HandWriteAPIPage } from './../../e2e/app.po';
import { Component } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import 'rxjs/add/operator/map';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  private apiKey: string = '2ND4YD74W5Y5Z8NC';
  private apiSecret: string = '65T65J5V850RWEHE';
  private apiURL: string = 'https://api.handwriting.io/handwritings'

  data: any = {};

  constructor(private http: Http){

    this.getData();
    this.getHandWrite();
  }

  getData(){
      let headers: Headers = new Headers();
      headers.append("Authorization", "Basic " + btoa(this.apiKey + ":" + this.apiSecret)); 

      return this.http.get(this.apiURL, {
        headers: headers
      })
      .map(res => res.json());
  }

  getHandWrite(){
    this.getData().subscribe(data => {
        console.log(data);
    });
  }

您可能希望在此服务中用单独的方法设置标头。但是我希望这会有所帮助。

您对手写API的API请求需要在每个请求中附加一个基本的授权头。在发出请求之前,您必须将这些凭据附加到标头

Angular在Http模块中有一个类,可用于实现设置自定义头/授权:

您的代码可能如下所示:

import { HandWriteAPIPage } from './../../e2e/app.po';
import { Component } from '@angular/core';
import { Http, Response, Headers } from '@angular/http';
import 'rxjs/add/operator/map';


@Component({
  selector: 'app-root',
  templateUrl: './app.component.html',
  styleUrls: ['./app.component.css']
})
export class AppComponent {
  title = 'app';
  private apiKey: string = '2ND4YD74W5Y5Z8NC';
  private apiSecret: string = '65T65J5V850RWEHE';
  private apiURL: string = 'https://api.handwriting.io/handwritings'

  data: any = {};

  constructor(private http: Http){

    this.getData();
    this.getHandWrite();
  }

  getData(){
      let headers: Headers = new Headers();
      headers.append("Authorization", "Basic " + btoa(this.apiKey + ":" + this.apiSecret)); 

      return this.http.get(this.apiURL, {
        headers: headers
      })
      .map(res => res.json());
  }

  getHandWrite(){
    this.getData().subscribe(data => {
        console.log(data);
    });
  }

您可能希望在此服务中用单独的方法设置标头。但我希望这会有所帮助。

最后,解决此问题后,您可能希望更改API密钥;)最后,您可能希望在解决此问题后更改API密钥;)