2018-03-17 04:52:10 +01:00
|
|
|
import { Injectable } from "@angular/core";
|
2018-03-17 05:30:43 +01:00
|
|
|
import { TokenData } from "./models/mastodon.interfaces";
|
2018-09-08 05:17:19 +02:00
|
|
|
import { HttpClient } from "@angular/common/http";
|
2018-03-17 04:52:10 +01:00
|
|
|
|
|
|
|
@Injectable()
|
|
|
|
export class AuthService {
|
|
|
|
constructor(
|
2018-09-08 05:17:19 +02:00
|
|
|
private readonly httpClient: HttpClient) {
|
2018-03-17 04:52:10 +01:00
|
|
|
}
|
|
|
|
|
2018-09-08 05:17:19 +02:00
|
|
|
getToken(instance: string, client_id: string, client_secret: string, code: string, redirect_uri: string): Promise<TokenData> {
|
|
|
|
const url = `https://${instance}/oauth/token?client_id=${client_id}&client_secret=${client_secret}&grant_type=authorization_code&code=${code}&redirect_uri=${encodeURIComponent(redirect_uri)}`;
|
2018-03-17 04:52:10 +01:00
|
|
|
|
2018-09-08 05:17:19 +02:00
|
|
|
return this.httpClient.post<TokenData>(url, null).toPromise();
|
2018-03-17 04:52:10 +01:00
|
|
|
}
|
|
|
|
}
|