@ts-core/oauth 3.0.2 → 3.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/cjs/OAuthBase.d.ts +13 -7
  2. package/cjs/OAuthBase.js +24 -6
  3. package/cjs/OAuthUser.d.ts +3 -3
  4. package/cjs/OAuthUser.js +1 -5
  5. package/cjs/go/GoAuth.d.ts +9 -0
  6. package/cjs/go/{GoOAuth.js → GoAuth.js} +21 -19
  7. package/cjs/go/GoUser.d.ts +3 -1
  8. package/cjs/go/GoUser.js +2 -0
  9. package/cjs/ma/MaAuth.d.ts +10 -0
  10. package/cjs/ma/MaAuth.js +64 -0
  11. package/cjs/ma/MaUser.d.ts +8 -0
  12. package/cjs/ma/MaUser.js +28 -0
  13. package/cjs/public-api.d.ts +3 -3
  14. package/cjs/public-api.js +3 -3
  15. package/cjs/vk/VkAuth.d.ts +8 -0
  16. package/cjs/vk/{VkOAuth.js → VkAuth.js} +25 -16
  17. package/cjs/vk/VkUser.d.ts +1 -1
  18. package/cjs/ya/{YaOAuth.d.ts → YaAuth.d.ts} +3 -3
  19. package/cjs/ya/YaAuth.js +57 -0
  20. package/cjs/ya/YaUser.d.ts +7 -1
  21. package/cjs/ya/YaUser.js +6 -0
  22. package/esm/OAuthBase.d.ts +13 -7
  23. package/esm/OAuthBase.js +24 -6
  24. package/esm/OAuthUser.d.ts +3 -3
  25. package/esm/OAuthUser.js +1 -5
  26. package/esm/go/GoAuth.d.ts +9 -0
  27. package/esm/go/{GoOAuth.js → GoAuth.js} +19 -17
  28. package/esm/go/GoUser.d.ts +3 -1
  29. package/esm/go/GoUser.js +2 -0
  30. package/esm/ma/MaAuth.d.ts +10 -0
  31. package/esm/ma/MaAuth.js +60 -0
  32. package/esm/ma/MaUser.d.ts +8 -0
  33. package/esm/ma/MaUser.js +24 -0
  34. package/esm/public-api.d.ts +3 -3
  35. package/esm/public-api.js +3 -3
  36. package/esm/vk/VkAuth.d.ts +8 -0
  37. package/esm/vk/{VkOAuth.js → VkAuth.js} +23 -14
  38. package/esm/vk/VkUser.d.ts +1 -1
  39. package/esm/ya/{YaOAuth.d.ts → YaAuth.d.ts} +3 -3
  40. package/esm/ya/YaAuth.js +53 -0
  41. package/esm/ya/YaUser.d.ts +7 -1
  42. package/esm/ya/YaUser.js +6 -0
  43. package/package.json +1 -1
  44. package/cjs/go/GoOAuth.d.ts +0 -7
  45. package/cjs/vk/VkOAuth.d.ts +0 -7
  46. package/cjs/ya/YaOAuth.js +0 -52
  47. package/esm/go/GoOAuth.d.ts +0 -7
  48. package/esm/vk/VkOAuth.d.ts +0 -7
  49. package/esm/ya/YaOAuth.js +0 -48
package/esm/OAuthBase.js CHANGED
@@ -9,12 +9,12 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
9
  };
10
10
  import { PromiseHandler, DateUtil, LoggerWrapper, TransportHttp } from "@ts-core/common";
11
11
  import * as _ from 'lodash';
12
+ import { URLSearchParams } from "url";
12
13
  export class OAuthBase extends LoggerWrapper {
13
- constructor(logger, window, applicationId, scope) {
14
+ constructor(logger, applicationId, window) {
14
15
  super(logger);
15
- this.window = window;
16
16
  this.applicationId = applicationId;
17
- this.scope = scope;
17
+ this.window = window;
18
18
  this.popUpWidth = 640;
19
19
  this.popUpHeight = 480;
20
20
  this.checkPopUp = () => {
@@ -38,6 +38,8 @@ export class OAuthBase extends LoggerWrapper {
38
38
  }
39
39
  };
40
40
  this.http = new TransportHttp(logger, { method: 'get' });
41
+ this._urlParams = new Map();
42
+ this.urlParams.set('display', 'popup');
41
43
  }
42
44
  open() {
43
45
  return __awaiter(this, void 0, void 0, function* () {
@@ -45,20 +47,29 @@ export class OAuthBase extends LoggerWrapper {
45
47
  return this.promise.promise;
46
48
  }
47
49
  this.promise = PromiseHandler.create();
48
- this.popUp = this.openPopup(this.getAuthUrl(), '_blank');
50
+ this.popUp = this.openPopup();
49
51
  this.window.addEventListener('message', this.messageHandler, false);
50
52
  this.timer = setInterval(this.checkPopUp, DateUtil.MILLISECONDS_NANOSECOND / 2);
51
53
  return this.promise.promise;
52
54
  });
53
55
  }
54
- openPopup(url, target) {
56
+ openPopup() {
55
57
  let window = this.window;
56
58
  let top = (window.screen.height - this.popUpHeight) / 2;
57
59
  let left = (window.screen.width - this.popUpWidth) / 2;
58
- let item = window.open(url, target, `scrollbars=yes,width=${this.popUpWidth},height=${this.popUpHeight},top=${top},left=${left}`);
60
+ let item = window.open(this.getUrl(), '_blank', `scrollbars=yes,width=${this.popUpWidth},height=${this.popUpHeight},top=${top},left=${left}`);
59
61
  item.focus();
60
62
  return item;
61
63
  }
64
+ getUrlParams() {
65
+ let item = new URLSearchParams();
66
+ item.append('display', 'popup');
67
+ item.append('client_id', this.applicationId);
68
+ item.append('redirect_uri', this.redirectUri);
69
+ item.append('response_type', this.responseType);
70
+ this.urlParams.forEach((value, key) => item.append(key, value));
71
+ return item;
72
+ }
62
73
  get redirectUri() {
63
74
  return `${this.originUrl}/oauth`;
64
75
  }
@@ -96,9 +107,16 @@ export class OAuthBase extends LoggerWrapper {
96
107
  }
97
108
  super.destroy();
98
109
  this.close();
110
+ if (!_.isNil(this.urlParams)) {
111
+ this.urlParams.clear();
112
+ this._urlParams = null;
113
+ }
99
114
  if (!_.isNil(this.http)) {
100
115
  this.http.destroy();
101
116
  this.http = null;
102
117
  }
103
118
  }
119
+ get urlParams() {
120
+ return this._urlParams;
121
+ }
104
122
  }
@@ -1,5 +1,5 @@
1
1
  export declare abstract class OAuthUser {
2
- id: string | number;
2
+ id: string;
3
3
  name: string;
4
4
  city?: string;
5
5
  phone?: string;
@@ -17,7 +17,7 @@ export declare abstract class OAuthUser {
17
17
  telegram?: string;
18
18
  instagram?: string;
19
19
  birthday?: Date;
20
- constructor(item?: any);
21
- protected abstract parse(item: any): void;
20
+ constructor();
21
+ abstract parse(item: any): void;
22
22
  get location(): string;
23
23
  }
package/esm/OAuthUser.js CHANGED
@@ -10,11 +10,7 @@ var __metadata = (this && this.__metadata) || function (k, v) {
10
10
  import * as _ from 'lodash';
11
11
  import { Type } from 'class-transformer';
12
12
  export class OAuthUser {
13
- constructor(item) {
14
- if (!_.isNil(item)) {
15
- this.parse(item);
16
- }
17
- }
13
+ constructor() { }
18
14
  get location() {
19
15
  let items = new Array();
20
16
  if (!_.isEmpty(this.country)) {
@@ -0,0 +1,9 @@
1
+ import { GoUser } from './GoUser';
2
+ import { IOAuthDto, IOAuthToken, OAuthBase } from '../OAuthBase';
3
+ import { ILogger } from '@ts-core/common';
4
+ export declare class GoAuth<T extends GoUser = GoUser> extends OAuthBase<T> {
5
+ constructor(logger: ILogger, applicationId: string, window?: Window);
6
+ protected getUrl(): string;
7
+ getProfile(token: string): Promise<T>;
8
+ getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
9
+ }
@@ -7,40 +7,42 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
- import * as _ from 'lodash';
11
10
  import { GoUser } from './GoUser';
12
11
  import { OAuthBase } from '../OAuthBase';
13
- export class GoOAuth extends OAuthBase {
14
- getAuthUrl() {
15
- let params = new URLSearchParams();
16
- params.append('display', 'popup');
17
- params.append('client_id', this.applicationId);
18
- params.append('redirect_uri', this.redirectUri);
19
- params.append('response_type', this.responseType);
20
- if (!_.isEmpty(this.scope)) {
21
- params.append('scope', this.scope);
22
- }
23
- return `https://accounts.google.com/o/oauth2/v2/auth?${params.toString()}`;
12
+ export class GoAuth extends OAuthBase {
13
+ constructor(logger, applicationId, window) {
14
+ super(logger, applicationId, window);
15
+ this.urlParams.set('scope', 'https://www.googleapis.com/auth/userinfo.profile');
16
+ }
17
+ getUrl() {
18
+ return `https://accounts.google.com/o/oauth2/v2/auth?${this.getUrlParams().toString()}`;
24
19
  }
25
20
  getProfile(token) {
26
21
  return __awaiter(this, void 0, void 0, function* () {
27
- let item = yield this.http.call('https://www.googleapis.com/oauth2/v3/userinfo', { headers: { 'Authorization': `Bearer ${token}` } });
28
- return new GoUser(item);
22
+ let item = new GoUser();
23
+ item.parse(yield this.http.call('https://www.googleapis.com/oauth2/v3/userinfo', { headers: { 'Authorization': `Bearer ${token}` } }));
24
+ return item;
29
25
  });
30
26
  }
31
27
  getTokenByCode(dto, secret) {
32
28
  return __awaiter(this, void 0, void 0, function* () {
33
29
  let item = yield this.http.call('https://oauth2.googleapis.com/token', {
34
- method: 'post',
35
30
  data: {
36
31
  code: dto.codeOrToken,
37
32
  client_id: this.applicationId,
38
33
  client_secret: secret,
39
34
  redirect_uri: dto.redirectUri,
40
35
  grant_type: 'authorization_code'
41
- }
36
+ },
37
+ method: 'post'
42
38
  });
43
- return { userId: item.user_id, expiresIn: item.expires_in, accessToken: item.access_token };
39
+ return {
40
+ expiresIn: item.expires_in,
41
+ accessToken: item.access_token,
42
+ tokenType: item.token_type,
43
+ idToken: item.id_token,
44
+ scope: item.scope
45
+ };
44
46
  });
45
47
  }
46
48
  }
@@ -1,4 +1,6 @@
1
1
  import { OAuthUser } from "../OAuthUser";
2
2
  export declare class GoUser extends OAuthUser {
3
- protected parse(item: any): void;
3
+ givenName: string;
4
+ familyName: string;
5
+ parse(item: any): void;
4
6
  }
package/esm/go/GoUser.js CHANGED
@@ -6,5 +6,7 @@ export class GoUser extends OAuthUser {
6
6
  this.email = item.email;
7
7
  this.locale = item.locale;
8
8
  this.picture = item.picture;
9
+ this.givenName = item.given_name;
10
+ this.familyName = item.family_name;
9
11
  }
10
12
  }
@@ -0,0 +1,10 @@
1
+ import { ILogger } from "@ts-core/common";
2
+ import { IOAuthDto, IOAuthToken, OAuthBase } from "../OAuthBase";
3
+ import { MaUser } from "./MaUser";
4
+ export declare class MaAuth<T extends MaUser = MaUser> extends OAuthBase<T> {
5
+ constructor(logger: ILogger, applicationId: string, window?: Window);
6
+ protected getUrlParams(): URLSearchParams;
7
+ protected getUrl(): string;
8
+ getProfile(token: string): Promise<T>;
9
+ getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
10
+ }
@@ -0,0 +1,60 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { ExtendedError, RandomUtil } from "@ts-core/common";
11
+ import { OAuthBase } from "../OAuthBase";
12
+ import { MaUser } from "./MaUser";
13
+ import * as _ from 'lodash';
14
+ export class MaAuth extends OAuthBase {
15
+ constructor(logger, applicationId, window) {
16
+ super(logger, applicationId, window);
17
+ this.popUpWidth = 480;
18
+ this.popUpHeight = 520;
19
+ this.urlParams.set('scope', 'userinfo');
20
+ }
21
+ getUrlParams() {
22
+ let item = super.getUrlParams();
23
+ item.append('state', RandomUtil.randomString(43));
24
+ return item;
25
+ }
26
+ getUrl() {
27
+ return `https://oauth.mail.ru/login?${this.getUrlParams().toString()}`;
28
+ }
29
+ getProfile(token) {
30
+ return __awaiter(this, void 0, void 0, function* () {
31
+ let item = new MaUser();
32
+ item.parse(yield this.http.call('https://oauth.mail.ru/userinfo', { data: { access_token: token } }));
33
+ return item;
34
+ });
35
+ }
36
+ getTokenByCode(dto, secret) {
37
+ return __awaiter(this, void 0, void 0, function* () {
38
+ let item = yield this.http.call('https://oauth.mail.ru/token', {
39
+ data: {
40
+ code: dto.codeOrToken,
41
+ client_id: this.applicationId,
42
+ client_secret: secret,
43
+ redirect_uri: dto.redirectUri,
44
+ grant_type: 'authorization_code'
45
+ },
46
+ method: 'post',
47
+ headers: { 'Content-Type': 'multipart/form-data' }
48
+ });
49
+ if (!_.isNil(item.error_description)) {
50
+ throw new ExtendedError(item.error_description);
51
+ }
52
+ return {
53
+ tokenType: item.token_type,
54
+ expiresIn: item.expires_in,
55
+ accessToken: item.access_token,
56
+ refreshToken: item.refresh_token,
57
+ };
58
+ });
59
+ }
60
+ }
@@ -0,0 +1,8 @@
1
+ import { OAuthUser } from "../OAuthUser";
2
+ export declare class MaUser extends OAuthUser {
3
+ clientId: string;
4
+ lastName: string;
5
+ nickname: string;
6
+ firstName: string;
7
+ parse(item: any): void;
8
+ }
@@ -0,0 +1,24 @@
1
+ import { OAuthUser } from "../OAuthUser";
2
+ import * as _ from 'lodash';
3
+ export class MaUser extends OAuthUser {
4
+ parse(item) {
5
+ this.id = item.id;
6
+ this.name = item.name;
7
+ this.email = item.email;
8
+ this.locale = item.locale;
9
+ this.picture = item.image;
10
+ this.clientId = item.clientId;
11
+ this.nickname = item.nickname;
12
+ this.lastName = item.last_name;
13
+ this.firstName = item.first_name;
14
+ if (!_.isNil(item.gender)) {
15
+ this.isMale = item.gender === 'm';
16
+ }
17
+ if (!_.isNil(item.birthday)) {
18
+ let array = String(item.birthday).split('.');
19
+ if (array.length === 3) {
20
+ this.birthday = new Date(Number(array[2]), Number(array[1]) - 1, Number(array[0]));
21
+ }
22
+ }
23
+ }
24
+ }
@@ -1,8 +1,8 @@
1
1
  export * from './OAuthBase';
2
2
  export * from './OAuthUser';
3
3
  export * from './go/GoUser';
4
- export * from './go/GoOAuth';
4
+ export * from './go/GoAuth';
5
5
  export * from './vk/VkUser';
6
- export * from './vk/VkOAuth';
6
+ export * from './vk/VkAuth';
7
7
  export * from './ya/YaUser';
8
- export * from './ya/YaOAuth';
8
+ export * from './ya/YaAuth';
package/esm/public-api.js CHANGED
@@ -1,8 +1,8 @@
1
1
  export * from './OAuthBase';
2
2
  export * from './OAuthUser';
3
3
  export * from './go/GoUser';
4
- export * from './go/GoOAuth';
4
+ export * from './go/GoAuth';
5
5
  export * from './vk/VkUser';
6
- export * from './vk/VkOAuth';
6
+ export * from './vk/VkAuth';
7
7
  export * from './ya/YaUser';
8
- export * from './ya/YaOAuth';
8
+ export * from './ya/YaAuth';
@@ -0,0 +1,8 @@
1
+ import { IOAuthDto, IOAuthToken, OAuthBase } from "../OAuthBase";
2
+ import { VkUser } from "./VkUser";
3
+ export declare class VkAuth<T extends VkUser = VkUser> extends OAuthBase<T> {
4
+ v: string;
5
+ protected getUrl(): string;
6
+ getProfile(token: string, fields?: string): Promise<T>;
7
+ getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
8
+ }
@@ -7,25 +7,27 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ import { ExtendedError } from '@ts-core/common';
10
11
  import * as _ from 'lodash';
11
12
  import { OAuthBase } from "../OAuthBase";
12
13
  import { VkUser } from "./VkUser";
13
- export class VkOAuth extends OAuthBase {
14
- getAuthUrl() {
15
- let params = new URLSearchParams();
16
- params.append('display', 'popup');
17
- params.append('client_id', this.applicationId);
18
- params.append('redirect_uri', this.redirectUri);
19
- params.append('response_type', this.responseType);
20
- if (!_.isEmpty(this.scope)) {
21
- params.append('scope', this.scope);
22
- }
23
- return `https://oauth.vk.com/authorize?${params.toString()}`;
14
+ export class VkAuth extends OAuthBase {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.v = '5.131';
18
+ }
19
+ getUrl() {
20
+ return `https://oauth.vk.com/authorize?${this.getUrlParams().toString()}`;
24
21
  }
25
22
  getProfile(token, fields) {
26
23
  return __awaiter(this, void 0, void 0, function* () {
27
- let { response } = yield this.http.call('https://api.vk.com/method/users.get', { data: { access_token: token, v: '5.131', fields } });
28
- return new VkUser(response[0]);
24
+ if (_.isNil(fields)) {
25
+ fields = 'photo_200,bdate,sex,city,country,status,about';
26
+ }
27
+ let { response } = yield this.http.call('https://api.vk.com/method/users.get', { data: { access_token: token, v: this.v, fields } });
28
+ let item = new VkUser();
29
+ item.parse(response[0]);
30
+ return item;
29
31
  });
30
32
  }
31
33
  getTokenByCode(dto, secret) {
@@ -38,7 +40,14 @@ export class VkOAuth extends OAuthBase {
38
40
  client_secret: secret,
39
41
  }
40
42
  });
41
- return { userId: item.user_id, expiresIn: item.expires_in, accessToken: item.access_token };
43
+ if (!_.isNil(item.error_description)) {
44
+ throw new ExtendedError(item.error_description);
45
+ }
46
+ return {
47
+ expiresIn: item.expires_in,
48
+ accessToken: item.access_token,
49
+ userId: item.user_id,
50
+ };
42
51
  });
43
52
  }
44
53
  }
@@ -1,5 +1,5 @@
1
1
  import { OAuthUser } from "../OAuthUser";
2
2
  export declare class VkUser extends OAuthUser {
3
3
  params: string;
4
- protected parse(item: any): void;
4
+ parse(item: any): void;
5
5
  }
@@ -1,9 +1,9 @@
1
1
  import { ILogger } from "@ts-core/common";
2
2
  import { IOAuthDto, IOAuthToken, OAuthBase } from "../OAuthBase";
3
3
  import { YaUser } from "./YaUser";
4
- export declare class YaOAuth<T extends YaUser = YaUser> extends OAuthBase<T> {
5
- constructor(logger: ILogger, window: Window, applicationId: string, scope?: string);
6
- protected getAuthUrl(): string;
4
+ export declare class YaAuth<T extends YaUser = YaUser> extends OAuthBase<T> {
5
+ constructor(logger: ILogger, applicationId: string, window?: Window);
6
+ protected getUrl(): string;
7
7
  getProfile(token: string): Promise<T>;
8
8
  getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
9
9
  }
@@ -0,0 +1,53 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { ExtendedError } from "@ts-core/common";
11
+ import { OAuthBase } from "../OAuthBase";
12
+ import { YaUser } from "./YaUser";
13
+ import * as _ from 'lodash';
14
+ export class YaAuth extends OAuthBase {
15
+ constructor(logger, applicationId, window) {
16
+ super(logger, applicationId, window);
17
+ this.popUpWidth = 480;
18
+ this.popUpHeight = 520;
19
+ }
20
+ getUrl() {
21
+ return `https://oauth.yandex.ru/authorize?${this.getUrlParams().toString()}`;
22
+ }
23
+ getProfile(token) {
24
+ return __awaiter(this, void 0, void 0, function* () {
25
+ let item = new YaUser();
26
+ item.parse(yield this.http.call('https://login.yandex.ru/info', { data: { oauth_token: token } }));
27
+ return item;
28
+ });
29
+ }
30
+ getTokenByCode(dto, secret) {
31
+ return __awaiter(this, void 0, void 0, function* () {
32
+ let item = yield this.http.call('https://oauth.yandex.ru/token', {
33
+ data: {
34
+ code: dto.codeOrToken,
35
+ client_id: this.applicationId,
36
+ client_secret: secret,
37
+ grant_type: 'authorization_code'
38
+ },
39
+ method: 'post',
40
+ headers: { 'Content-Type': 'multipart/form-data' }
41
+ });
42
+ if (!_.isNil(item.error_description)) {
43
+ throw new ExtendedError(item.error_description);
44
+ }
45
+ return {
46
+ expiresIn: item.expires_in,
47
+ accessToken: item.access_token,
48
+ refreshToken: item.refresh_token,
49
+ tokenType: item.token_type,
50
+ };
51
+ });
52
+ }
53
+ }
@@ -1,4 +1,10 @@
1
1
  import { OAuthUser } from "../OAuthUser";
2
2
  export declare class YaUser extends OAuthUser {
3
- protected parse(item: any): void;
3
+ login: string;
4
+ psuid: string;
5
+ emails: Array<string>;
6
+ clientId: string;
7
+ realName: string;
8
+ displayName: string;
9
+ parse(item: any): void;
4
10
  }
package/esm/ya/YaUser.js CHANGED
@@ -4,8 +4,14 @@ export class YaUser extends OAuthUser {
4
4
  parse(item) {
5
5
  this.id = item.id;
6
6
  this.name = item.display_name;
7
+ this.login = item.login;
8
+ this.psuid = item.psuid;
7
9
  this.email = item.default_email;
8
10
  this.phone = _.get(item, 'default_phone.number');
11
+ this.emails = item.emails;
12
+ this.clientId = item.client_id;
13
+ this.realName = item.real_name;
14
+ this.displayName = item.display_name;
9
15
  if (!_.isNil(item.sex)) {
10
16
  this.isMale = item.sex === 'male';
11
17
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ts-core/oauth",
3
- "version": "3.0.2",
3
+ "version": "3.0.4",
4
4
  "description": "Classes and utils for oauth",
5
5
  "main": "./cjs/public-api.js",
6
6
  "module": "./esm/public-api.js",
@@ -1,7 +0,0 @@
1
- import { GoUser } from './GoUser';
2
- import { IOAuthDto, IOAuthToken, OAuthBase } from '../OAuthBase';
3
- export declare class GoOAuth<T extends GoUser = GoUser> extends OAuthBase<T> {
4
- protected getAuthUrl(): string;
5
- getProfile(token: string): Promise<T>;
6
- getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
7
- }
@@ -1,7 +0,0 @@
1
- import { IOAuthDto, IOAuthToken, OAuthBase } from "../OAuthBase";
2
- import { VkUser } from "./VkUser";
3
- export declare class VkOAuth<T extends VkUser = VkUser> extends OAuthBase<T> {
4
- protected getAuthUrl(): string;
5
- getProfile(token: string, fields: string): Promise<T>;
6
- getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
7
- }
package/cjs/ya/YaOAuth.js DELETED
@@ -1,52 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.YaOAuth = void 0;
13
- const OAuthBase_1 = require("../OAuthBase");
14
- const YaUser_1 = require("./YaUser");
15
- const _ = require("lodash");
16
- const axios_1 = require("axios");
17
- class YaOAuth extends OAuthBase_1.OAuthBase {
18
- constructor(logger, window, applicationId, scope) {
19
- super(logger, window, applicationId, scope);
20
- this.popUpWidth = 480;
21
- this.popUpHeight = 520;
22
- }
23
- getAuthUrl() {
24
- let params = new URLSearchParams();
25
- params.append('display', 'popup');
26
- params.append('client_id', this.applicationId);
27
- params.append('redirect_uri', this.redirectUri);
28
- params.append('response_type', this.responseType);
29
- if (!_.isEmpty(this.scope)) {
30
- params.append('scope', this.scope);
31
- }
32
- return `https://oauth.yandex.ru/authorize?${params.toString()}`;
33
- }
34
- getProfile(token) {
35
- return __awaiter(this, void 0, void 0, function* () {
36
- let item = yield this.http.call('https://login.yandex.ru/info', { data: { oauth_token: token } });
37
- return new YaUser_1.YaUser(item);
38
- });
39
- }
40
- getTokenByCode(dto, secret) {
41
- return __awaiter(this, void 0, void 0, function* () {
42
- let { data } = yield axios_1.default.postForm('https://oauth.yandex.ru/token', {
43
- code: dto.codeOrToken,
44
- client_id: this.applicationId,
45
- client_secret: secret,
46
- grant_type: 'authorization_code'
47
- });
48
- return { userId: data.user_id, expiresIn: data.expires_in, accessToken: data.access_token, type: data.token_type, scope: data.scope };
49
- });
50
- }
51
- }
52
- exports.YaOAuth = YaOAuth;
@@ -1,7 +0,0 @@
1
- import { GoUser } from './GoUser';
2
- import { IOAuthDto, IOAuthToken, OAuthBase } from '../OAuthBase';
3
- export declare class GoOAuth<T extends GoUser = GoUser> extends OAuthBase<T> {
4
- protected getAuthUrl(): string;
5
- getProfile(token: string): Promise<T>;
6
- getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
7
- }
@@ -1,7 +0,0 @@
1
- import { IOAuthDto, IOAuthToken, OAuthBase } from "../OAuthBase";
2
- import { VkUser } from "./VkUser";
3
- export declare class VkOAuth<T extends VkUser = VkUser> extends OAuthBase<T> {
4
- protected getAuthUrl(): string;
5
- getProfile(token: string, fields: string): Promise<T>;
6
- getTokenByCode(dto: IOAuthDto, secret: string): Promise<IOAuthToken>;
7
- }
package/esm/ya/YaOAuth.js DELETED
@@ -1,48 +0,0 @@
1
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
- return new (P || (P = Promise))(function (resolve, reject) {
4
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
- step((generator = generator.apply(thisArg, _arguments || [])).next());
8
- });
9
- };
10
- import { OAuthBase } from "../OAuthBase";
11
- import { YaUser } from "./YaUser";
12
- import * as _ from 'lodash';
13
- import axios from 'axios';
14
- export class YaOAuth extends OAuthBase {
15
- constructor(logger, window, applicationId, scope) {
16
- super(logger, window, applicationId, scope);
17
- this.popUpWidth = 480;
18
- this.popUpHeight = 520;
19
- }
20
- getAuthUrl() {
21
- let params = new URLSearchParams();
22
- params.append('display', 'popup');
23
- params.append('client_id', this.applicationId);
24
- params.append('redirect_uri', this.redirectUri);
25
- params.append('response_type', this.responseType);
26
- if (!_.isEmpty(this.scope)) {
27
- params.append('scope', this.scope);
28
- }
29
- return `https://oauth.yandex.ru/authorize?${params.toString()}`;
30
- }
31
- getProfile(token) {
32
- return __awaiter(this, void 0, void 0, function* () {
33
- let item = yield this.http.call('https://login.yandex.ru/info', { data: { oauth_token: token } });
34
- return new YaUser(item);
35
- });
36
- }
37
- getTokenByCode(dto, secret) {
38
- return __awaiter(this, void 0, void 0, function* () {
39
- let { data } = yield axios.postForm('https://oauth.yandex.ru/token', {
40
- code: dto.codeOrToken,
41
- client_id: this.applicationId,
42
- client_secret: secret,
43
- grant_type: 'authorization_code'
44
- });
45
- return { userId: data.user_id, expiresIn: data.expires_in, accessToken: data.access_token, type: data.token_type, scope: data.scope };
46
- });
47
- }
48
- }