Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import axios, {AxiosInstance} from 'axios';
- const apiVersionPrefix = 'v1';
- const oauthGrantType = 'password';
- const oauthClientId = '1';
- const oauthClientSecret = 'rcvMGaXE080elgdfolWsp8QNOPwG5FYiAllzFYXH';
- const oauthScope = '';
- const API: AxiosInstance = axios.create({
- baseURL: `http://api.shop.local/` + apiVersionPrefix
- });
- export interface IApiOauthTokenData {
- email: string,
- password: string,
- }
- export interface IApiOauthTokenRequestData {
- grant_type: string,
- client_id: string,
- client_secret: string,
- scope: string,
- username: string,
- password: string,
- }
- export interface IApiOauthTokenResponseData {
- token_type: string,
- expires_in: number,
- access_token: string,
- refresh_token: string,
- }
- export async function CallApiOauthToken(data: IApiOauthTokenData): Promise<IApiOauthTokenResponseData | {}> {
- const requestData: IApiOauthTokenRequestData = {
- grant_type: oauthGrantType,
- client_id: oauthClientId,
- client_secret: oauthClientSecret,
- scope: oauthScope,
- username: data.email,
- password: data.password,
- };
- return await API.post(`/oauth/token`, requestData).then(result => {
- const responseData: IApiOauthTokenResponseData = {
- token_type: result.data.token_type,
- expires_in: result.data.expires_in,
- access_token: result.data.access_token,
- refresh_token: result.data.refresh_token,
- };
- return responseData;
- }).catch(error => {
- console.log(error); // todo error show
- return {};
- });
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement