Попытка oauth2 с универсальным поставщиком, используя http-запросы в Ionic2 и typescript

Я пытался найти полезную библиотеку для аутентификации с универсальным поставщиком с помощью oauth2. I am new to Ionic, and coudln’t find a library that could help me accomplish this easily. Я также вижу, что большинство библиотек ограничены мобильными устройствами, поэтому я решил пойти по трудному пути и попытаться написать код сам. Я приношу извинения, если код удача уродливый или ужасно неправильно. Я давно занимался программированием PHP и пытаюсь вернуться к программированию с помощью этого.

Сначала я создал страницу поставщика с командой: Ionic G provider MakeHttpRequest.
Вот то, что я написал до сих пор, только первый шаг в получении токена.

import { Injectable } from '@angular/core';
import { Http } from '@angular/http';
import 'rxjs/add/operator/map';

/*
  Generated class for the MakeHttpRequest provider.

  See https://angular.io/docs/ts/latest/guide/dependency-injection.html
  for more info on providers and Angular 2 DI.
*/
@Injectable()
export class MakeHttpRequest {

constructor
(
public http: Http,
private client_name : string,
private client_id : string,
private client_secret : string,
private end_point : string,
private auth_uri : string,
private redirect_uri : string
) {
    console.log('Hello MakeHttpRequest Provider');
    this.client_name = 'Alex';
    this.client_id = 'lalala';
    this.client_secret = 'lalalalala';
    this.end_point = 'http://www.lalaland.com';
    this.auth_uri = 'https://services.lalaland.com/oauth/authorize';
    this.redirect_uri = 'http://localhost/callback';
  }

 public getcode(){
    this.http.get("${this.auth_uri}?client_id=${this.client_id}&redirect_uri=${this.redirect_uri}&response?type=code")
      .map(res => res.json()).subscribe(data => {
    console.log(data);
});

     }


}

затем импортировал класс следующим образом в home.ts:

import {MakeHttpRequest} from '../../providers/make-http-request';

создал конструктор еще под home.ts следующим образом:
конструктор (public navCtrl: NavController, private platform : Platform, private MakeHttpRequest : MakeHttpRequest)

и создал следующую функцию:

public button(){

      this.MakeHttpRequest.getcode()
    }

затем добавлена функция кнопки в начало.HTML-страница.

Но все, что я получаю, это ошибка. Может ли кто-нибудь сказать мне, в правильном ли я направлении или даже близко. Любая помощь или комментарии высоко ценятся.

1 ответ

  1. Не удается разрешить все параметры для MakeHttpRequest: (Http,?, ?, ?, ?, ?, ?)

    За этот вопрос,
    Вам нужно пройти через инъекцию угловой зависимости

    Поскольку поставщик MakeHttpRequest создается через DI, все параметры конструктора задаются DI. Он может найти http, но не может установить примитивные типы. Вам придется удалить параметры строки и установить в getCode()