@restorecommerce/facade 0.2.1 → 0.3.1
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.
- package/CHANGELOG.md +40 -0
- package/debug-run.ts +1 -1
- package/dist/gql/protos/registry.js +12 -2
- package/dist/modules/identity/gql/schema.generated.d.ts +115 -0
- package/dist/modules/identity/gql/types.js +5 -0
- package/dist/modules/identity/oauth/oauth.js +58 -28
- package/dist/modules/identity/oauth/views/account.hbs +5 -1
- package/package.json +4 -3
package/CHANGELOG.md
CHANGED
@@ -3,6 +3,46 @@
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
5
5
|
|
6
|
+
## [0.3.1](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.3.0...@restorecommerce/facade@0.3.1) (2022-02-23)
|
7
|
+
|
8
|
+
|
9
|
+
### Bug Fixes
|
10
|
+
|
11
|
+
* **facade:** use token that was received from ids ([2508cfb](https://github.com/restorecommerce/libs/commit/2508cfb28c099000dad4c037a0eeb1883f152f05))
|
12
|
+
|
13
|
+
|
14
|
+
|
15
|
+
|
16
|
+
|
17
|
+
# [0.3.0](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.2...@restorecommerce/facade@0.3.0) (2022-02-22)
|
18
|
+
|
19
|
+
|
20
|
+
### Bug Fixes
|
21
|
+
|
22
|
+
* **facade:** do not internal error ([a98594d](https://github.com/restorecommerce/libs/commit/a98594d2a478965eb3b22fff530b86c290afbbb2))
|
23
|
+
* **facade:** use jwt token ([666a08f](https://github.com/restorecommerce/libs/commit/666a08f9b7727cda26a499c3ebaa5335ed38a27a))
|
24
|
+
* **protos:** add token to code exchange ([9c17cb6](https://github.com/restorecommerce/libs/commit/9c17cb6e3a16761a85a4b9379c3c6996cc5422e8))
|
25
|
+
|
26
|
+
|
27
|
+
### Features
|
28
|
+
|
29
|
+
* **facade:** support maps ([2c466fe](https://github.com/restorecommerce/libs/commit/2c466fe1e0ef883ab4b7eb19f637ef13f1f88e96))
|
30
|
+
|
31
|
+
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
## [0.2.2](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.1...@restorecommerce/facade@0.2.2) (2022-02-15)
|
36
|
+
|
37
|
+
|
38
|
+
### Bug Fixes
|
39
|
+
|
40
|
+
* store facade token in cookies ([5fe1b53](https://github.com/restorecommerce/libs/commit/5fe1b538955993f6d20626968699867f0120589c))
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
|
6
46
|
## [0.2.1](https://github.com/restorecommerce/libs/compare/@restorecommerce/facade@0.2.0...@restorecommerce/facade@0.2.1) (2022-02-14)
|
7
47
|
|
8
48
|
|
package/debug-run.ts
CHANGED
@@ -223,6 +223,7 @@ const getTyping = (type) => {
|
|
223
223
|
};
|
224
224
|
exports.getTyping = getTyping;
|
225
225
|
const resolveMeta = (key, field, rootObjType, objName, input) => {
|
226
|
+
var _a;
|
226
227
|
let result;
|
227
228
|
switch (field.type) {
|
228
229
|
case descriptor_1.FieldDescriptorProto_Type.TYPE_BOOL:
|
@@ -237,14 +238,23 @@ const resolveMeta = (key, field, rootObjType, objName, input) => {
|
|
237
238
|
if (!exports.registeredTypings.has(objType)) {
|
238
239
|
throw new Error("Typing '" + objType + "' not registered for key '" + key + "' in object: " + objName);
|
239
240
|
}
|
241
|
+
let typingData = exports.registeredTypings.get(objType);
|
242
|
+
let mapEntry = false;
|
243
|
+
if (typingData.meta.options) {
|
244
|
+
mapEntry = !!((_a = typingData.meta.options) === null || _a === void 0 ? void 0 : _a.mapEntry);
|
245
|
+
}
|
246
|
+
// TODO Actually unroll maps into entries
|
247
|
+
if (mapEntry) {
|
248
|
+
return MapScalar;
|
249
|
+
}
|
240
250
|
if (!input) {
|
241
|
-
result =
|
251
|
+
result = typingData.output;
|
242
252
|
break;
|
243
253
|
}
|
244
254
|
if (objType === types_1.authSubjectType) {
|
245
255
|
return null;
|
246
256
|
}
|
247
|
-
result =
|
257
|
+
result = typingData.input;
|
248
258
|
break;
|
249
259
|
case descriptor_1.FieldDescriptorProto_Type.TYPE_BYTES:
|
250
260
|
if (input) {
|
@@ -26,6 +26,7 @@ export declare type Scalars = {
|
|
26
26
|
Float: number;
|
27
27
|
TodoScalar: any;
|
28
28
|
Upload: any;
|
29
|
+
MapScalar: any;
|
29
30
|
};
|
30
31
|
export declare type Query = {
|
31
32
|
__typename?: 'Query';
|
@@ -37,6 +38,7 @@ export declare type IdentityQuery = {
|
|
37
38
|
role: IdentityRoleQuery;
|
38
39
|
authentication_log: IdentityAuthenticationLogQuery;
|
39
40
|
token: IdentityTokenQuery;
|
41
|
+
oauth: IdentityOauthQuery;
|
40
42
|
};
|
41
43
|
export declare type IdentityUserQuery = {
|
42
44
|
__typename?: 'IdentityUserQuery';
|
@@ -364,6 +366,27 @@ export declare type IIoRestorecommerceTokenIdentifier = {
|
|
364
366
|
id?: Maybe<Scalars['String']>;
|
365
367
|
type?: Maybe<Scalars['String']>;
|
366
368
|
};
|
369
|
+
export declare type IdentityOauthQuery = {
|
370
|
+
__typename?: 'IdentityOauthQuery';
|
371
|
+
AvailableServices?: Maybe<ProtoIoRestorecommerceOauthServicesResponse>;
|
372
|
+
GenerateLinks?: Maybe<ProtoIoRestorecommerceOauthGenerateLinksResponse>;
|
373
|
+
};
|
374
|
+
export declare type ProtoIoRestorecommerceOauthServicesResponse = {
|
375
|
+
__typename?: 'ProtoIoRestorecommerceOauthServicesResponse';
|
376
|
+
details?: Maybe<IoRestorecommerceOauthServicesResponse>;
|
377
|
+
};
|
378
|
+
export declare type IoRestorecommerceOauthServicesResponse = {
|
379
|
+
__typename?: 'IoRestorecommerceOauthServicesResponse';
|
380
|
+
services?: Maybe<Array<Scalars['String']>>;
|
381
|
+
};
|
382
|
+
export declare type ProtoIoRestorecommerceOauthGenerateLinksResponse = {
|
383
|
+
__typename?: 'ProtoIoRestorecommerceOauthGenerateLinksResponse';
|
384
|
+
details?: Maybe<IoRestorecommerceOauthGenerateLinksResponse>;
|
385
|
+
};
|
386
|
+
export declare type IoRestorecommerceOauthGenerateLinksResponse = {
|
387
|
+
__typename?: 'IoRestorecommerceOauthGenerateLinksResponse';
|
388
|
+
links?: Maybe<Scalars['MapScalar']>;
|
389
|
+
};
|
367
390
|
export declare type Mutation = {
|
368
391
|
__typename?: 'Mutation';
|
369
392
|
identity: IdentityMutation;
|
@@ -374,6 +397,7 @@ export declare type IdentityMutation = {
|
|
374
397
|
role: IdentityRoleMutation;
|
375
398
|
authentication_log: IdentityAuthenticationLogMutation;
|
376
399
|
token: IdentityTokenMutation;
|
400
|
+
oauth: IdentityOauthMutation;
|
377
401
|
};
|
378
402
|
export declare type IdentityUserMutation = {
|
379
403
|
__typename?: 'IdentityUserMutation';
|
@@ -683,6 +707,28 @@ export declare type IIoRestorecommerceTokenTokenData = {
|
|
683
707
|
export declare type IIoRestorecommerceTokenGrantId = {
|
684
708
|
grantId?: Maybe<Scalars['String']>;
|
685
709
|
};
|
710
|
+
export declare type IdentityOauthMutation = {
|
711
|
+
__typename?: 'IdentityOauthMutation';
|
712
|
+
ExchangeCode?: Maybe<ProtoIoRestorecommerceOauthExchangeCodeResponse>;
|
713
|
+
};
|
714
|
+
export declare type IdentityOauthMutationExchangeCodeArgs = {
|
715
|
+
input: IIoRestorecommerceOauthExchangeCodeRequest;
|
716
|
+
};
|
717
|
+
export declare type ProtoIoRestorecommerceOauthExchangeCodeResponse = {
|
718
|
+
__typename?: 'ProtoIoRestorecommerceOauthExchangeCodeResponse';
|
719
|
+
details?: Maybe<IoRestorecommerceOauthExchangeCodeResponse>;
|
720
|
+
};
|
721
|
+
export declare type IoRestorecommerceOauthExchangeCodeResponse = {
|
722
|
+
__typename?: 'IoRestorecommerceOauthExchangeCodeResponse';
|
723
|
+
user?: Maybe<IoRestorecommerceUserUserResponse>;
|
724
|
+
email?: Maybe<Scalars['String']>;
|
725
|
+
token?: Maybe<IoRestorecommerceAuthTokens>;
|
726
|
+
};
|
727
|
+
export declare type IIoRestorecommerceOauthExchangeCodeRequest = {
|
728
|
+
service?: Maybe<Scalars['String']>;
|
729
|
+
code?: Maybe<Scalars['String']>;
|
730
|
+
state?: Maybe<Scalars['String']>;
|
731
|
+
};
|
686
732
|
export declare type WithIndex<TObject> = TObject & Record<string, any>;
|
687
733
|
export declare type ResolversObject<TObject> = WithIndex<TObject>;
|
688
734
|
export declare type ResolverTypeWrapper<T> = Promise<T> | T;
|
@@ -766,6 +812,12 @@ export declare type ResolversTypes = ResolversObject<{
|
|
766
812
|
IdentityTokenQuery: ResolverTypeWrapper<IdentityTokenQuery>;
|
767
813
|
ProtoGoogleProtobufAny: ResolverTypeWrapper<ProtoGoogleProtobufAny>;
|
768
814
|
IIoRestorecommerceTokenIdentifier: IIoRestorecommerceTokenIdentifier;
|
815
|
+
IdentityOauthQuery: ResolverTypeWrapper<IdentityOauthQuery>;
|
816
|
+
ProtoIoRestorecommerceOauthServicesResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthServicesResponse>;
|
817
|
+
IoRestorecommerceOauthServicesResponse: ResolverTypeWrapper<IoRestorecommerceOauthServicesResponse>;
|
818
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthGenerateLinksResponse>;
|
819
|
+
IoRestorecommerceOauthGenerateLinksResponse: ResolverTypeWrapper<IoRestorecommerceOauthGenerateLinksResponse>;
|
820
|
+
MapScalar: ResolverTypeWrapper<Scalars['MapScalar']>;
|
769
821
|
Mutation: ResolverTypeWrapper<{}>;
|
770
822
|
IdentityMutation: ResolverTypeWrapper<IdentityMutation>;
|
771
823
|
IdentityUserMutation: ResolverTypeWrapper<IdentityUserMutation>;
|
@@ -806,6 +858,10 @@ export declare type ResolversTypes = ResolversObject<{
|
|
806
858
|
IdentityTokenMutation: ResolverTypeWrapper<IdentityTokenMutation>;
|
807
859
|
IIoRestorecommerceTokenTokenData: IIoRestorecommerceTokenTokenData;
|
808
860
|
IIoRestorecommerceTokenGrantId: IIoRestorecommerceTokenGrantId;
|
861
|
+
IdentityOauthMutation: ResolverTypeWrapper<IdentityOauthMutation>;
|
862
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse: ResolverTypeWrapper<ProtoIoRestorecommerceOauthExchangeCodeResponse>;
|
863
|
+
IoRestorecommerceOauthExchangeCodeResponse: ResolverTypeWrapper<IoRestorecommerceOauthExchangeCodeResponse>;
|
864
|
+
IIoRestorecommerceOauthExchangeCodeRequest: IIoRestorecommerceOauthExchangeCodeRequest;
|
809
865
|
}>;
|
810
866
|
/** Mapping between all available schema types and the resolvers parents */
|
811
867
|
export declare type ResolversParentTypes = ResolversObject<{
|
@@ -857,6 +913,12 @@ export declare type ResolversParentTypes = ResolversObject<{
|
|
857
913
|
IdentityTokenQuery: IdentityTokenQuery;
|
858
914
|
ProtoGoogleProtobufAny: ProtoGoogleProtobufAny;
|
859
915
|
IIoRestorecommerceTokenIdentifier: IIoRestorecommerceTokenIdentifier;
|
916
|
+
IdentityOauthQuery: IdentityOauthQuery;
|
917
|
+
ProtoIoRestorecommerceOauthServicesResponse: ProtoIoRestorecommerceOauthServicesResponse;
|
918
|
+
IoRestorecommerceOauthServicesResponse: IoRestorecommerceOauthServicesResponse;
|
919
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse: ProtoIoRestorecommerceOauthGenerateLinksResponse;
|
920
|
+
IoRestorecommerceOauthGenerateLinksResponse: IoRestorecommerceOauthGenerateLinksResponse;
|
921
|
+
MapScalar: Scalars['MapScalar'];
|
860
922
|
Mutation: {};
|
861
923
|
IdentityMutation: IdentityMutation;
|
862
924
|
IdentityUserMutation: IdentityUserMutation;
|
@@ -896,6 +958,10 @@ export declare type ResolversParentTypes = ResolversObject<{
|
|
896
958
|
IdentityTokenMutation: IdentityTokenMutation;
|
897
959
|
IIoRestorecommerceTokenTokenData: IIoRestorecommerceTokenTokenData;
|
898
960
|
IIoRestorecommerceTokenGrantId: IIoRestorecommerceTokenGrantId;
|
961
|
+
IdentityOauthMutation: IdentityOauthMutation;
|
962
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse: ProtoIoRestorecommerceOauthExchangeCodeResponse;
|
963
|
+
IoRestorecommerceOauthExchangeCodeResponse: IoRestorecommerceOauthExchangeCodeResponse;
|
964
|
+
IIoRestorecommerceOauthExchangeCodeRequest: IIoRestorecommerceOauthExchangeCodeRequest;
|
899
965
|
}>;
|
900
966
|
export declare type QueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['Query'] = ResolversParentTypes['Query']> = ResolversObject<{
|
901
967
|
identity?: Resolver<ResolversTypes['IdentityQuery'], ParentType, ContextType>;
|
@@ -905,6 +971,7 @@ export declare type IdentityQueryResolvers<ContextType = IdentityContext, Parent
|
|
905
971
|
role?: Resolver<ResolversTypes['IdentityRoleQuery'], ParentType, ContextType>;
|
906
972
|
authentication_log?: Resolver<ResolversTypes['IdentityAuthenticationLogQuery'], ParentType, ContextType>;
|
907
973
|
token?: Resolver<ResolversTypes['IdentityTokenQuery'], ParentType, ContextType>;
|
974
|
+
oauth?: Resolver<ResolversTypes['IdentityOauthQuery'], ParentType, ContextType>;
|
908
975
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
909
976
|
}>;
|
910
977
|
export declare type IdentityUserQueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityUserQuery'] = ResolversParentTypes['IdentityUserQuery']> = ResolversObject<{
|
@@ -1152,6 +1219,30 @@ export declare type ProtoGoogleProtobufAnyResolvers<ContextType = IdentityContex
|
|
1152
1219
|
details?: Resolver<Maybe<ResolversTypes['GoogleProtobufAny']>, ParentType, ContextType>;
|
1153
1220
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1154
1221
|
}>;
|
1222
|
+
export declare type IdentityOauthQueryResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityOauthQuery'] = ResolversParentTypes['IdentityOauthQuery']> = ResolversObject<{
|
1223
|
+
AvailableServices?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthServicesResponse']>, ParentType, ContextType>;
|
1224
|
+
GenerateLinks?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse']>, ParentType, ContextType>;
|
1225
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1226
|
+
}>;
|
1227
|
+
export declare type ProtoIoRestorecommerceOauthServicesResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthServicesResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthServicesResponse']> = ResolversObject<{
|
1228
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthServicesResponse']>, ParentType, ContextType>;
|
1229
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1230
|
+
}>;
|
1231
|
+
export declare type IoRestorecommerceOauthServicesResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthServicesResponse'] = ResolversParentTypes['IoRestorecommerceOauthServicesResponse']> = ResolversObject<{
|
1232
|
+
services?: Resolver<Maybe<Array<ResolversTypes['String']>>, ParentType, ContextType>;
|
1233
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1234
|
+
}>;
|
1235
|
+
export declare type ProtoIoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthGenerateLinksResponse']> = ResolversObject<{
|
1236
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthGenerateLinksResponse']>, ParentType, ContextType>;
|
1237
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1238
|
+
}>;
|
1239
|
+
export declare type IoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthGenerateLinksResponse'] = ResolversParentTypes['IoRestorecommerceOauthGenerateLinksResponse']> = ResolversObject<{
|
1240
|
+
links?: Resolver<Maybe<ResolversTypes['MapScalar']>, ParentType, ContextType>;
|
1241
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1242
|
+
}>;
|
1243
|
+
export interface MapScalarScalarConfig extends GraphQLScalarTypeConfig<ResolversTypes['MapScalar'], any> {
|
1244
|
+
name: 'MapScalar';
|
1245
|
+
}
|
1155
1246
|
export declare type MutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['Mutation'] = ResolversParentTypes['Mutation']> = ResolversObject<{
|
1156
1247
|
identity?: Resolver<ResolversTypes['IdentityMutation'], ParentType, ContextType>;
|
1157
1248
|
}>;
|
@@ -1160,6 +1251,7 @@ export declare type IdentityMutationResolvers<ContextType = IdentityContext, Par
|
|
1160
1251
|
role?: Resolver<ResolversTypes['IdentityRoleMutation'], ParentType, ContextType>;
|
1161
1252
|
authentication_log?: Resolver<ResolversTypes['IdentityAuthenticationLogMutation'], ParentType, ContextType>;
|
1162
1253
|
token?: Resolver<ResolversTypes['IdentityTokenMutation'], ParentType, ContextType>;
|
1254
|
+
oauth?: Resolver<ResolversTypes['IdentityOauthMutation'], ParentType, ContextType>;
|
1163
1255
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1164
1256
|
}>;
|
1165
1257
|
export declare type IdentityUserMutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityUserMutation'] = ResolversParentTypes['IdentityUserMutation']> = ResolversObject<{
|
@@ -1223,6 +1315,20 @@ export declare type IdentityTokenMutationResolvers<ContextType = IdentityContext
|
|
1223
1315
|
consume?: Resolver<Maybe<ResolversTypes['ProtoGoogleProtobufAny']>, ParentType, ContextType, RequireFields<IdentityTokenMutationConsumeArgs, 'input'>>;
|
1224
1316
|
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1225
1317
|
}>;
|
1318
|
+
export declare type IdentityOauthMutationResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IdentityOauthMutation'] = ResolversParentTypes['IdentityOauthMutation']> = ResolversObject<{
|
1319
|
+
ExchangeCode?: Resolver<Maybe<ResolversTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse']>, ParentType, ContextType, RequireFields<IdentityOauthMutationExchangeCodeArgs, 'input'>>;
|
1320
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1321
|
+
}>;
|
1322
|
+
export declare type ProtoIoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse'] = ResolversParentTypes['ProtoIoRestorecommerceOauthExchangeCodeResponse']> = ResolversObject<{
|
1323
|
+
details?: Resolver<Maybe<ResolversTypes['IoRestorecommerceOauthExchangeCodeResponse']>, ParentType, ContextType>;
|
1324
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1325
|
+
}>;
|
1326
|
+
export declare type IoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType = IdentityContext, ParentType extends ResolversParentTypes['IoRestorecommerceOauthExchangeCodeResponse'] = ResolversParentTypes['IoRestorecommerceOauthExchangeCodeResponse']> = ResolversObject<{
|
1327
|
+
user?: Resolver<Maybe<ResolversTypes['IoRestorecommerceUserUserResponse']>, ParentType, ContextType>;
|
1328
|
+
email?: Resolver<Maybe<ResolversTypes['String']>, ParentType, ContextType>;
|
1329
|
+
token?: Resolver<Maybe<ResolversTypes['IoRestorecommerceAuthTokens']>, ParentType, ContextType>;
|
1330
|
+
__isTypeOf?: IsTypeOfResolverFn<ParentType, ContextType>;
|
1331
|
+
}>;
|
1226
1332
|
export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
1227
1333
|
Query?: QueryResolvers<ContextType>;
|
1228
1334
|
IdentityQuery?: IdentityQueryResolvers<ContextType>;
|
@@ -1263,6 +1369,12 @@ export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
|
1263
1369
|
IoRestorecommerceAuthenticationLogAuthenticationLog?: IoRestorecommerceAuthenticationLogAuthenticationLogResolvers<ContextType>;
|
1264
1370
|
IdentityTokenQuery?: IdentityTokenQueryResolvers<ContextType>;
|
1265
1371
|
ProtoGoogleProtobufAny?: ProtoGoogleProtobufAnyResolvers<ContextType>;
|
1372
|
+
IdentityOauthQuery?: IdentityOauthQueryResolvers<ContextType>;
|
1373
|
+
ProtoIoRestorecommerceOauthServicesResponse?: ProtoIoRestorecommerceOauthServicesResponseResolvers<ContextType>;
|
1374
|
+
IoRestorecommerceOauthServicesResponse?: IoRestorecommerceOauthServicesResponseResolvers<ContextType>;
|
1375
|
+
ProtoIoRestorecommerceOauthGenerateLinksResponse?: ProtoIoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType>;
|
1376
|
+
IoRestorecommerceOauthGenerateLinksResponse?: IoRestorecommerceOauthGenerateLinksResponseResolvers<ContextType>;
|
1377
|
+
MapScalar?: GraphQLScalarType;
|
1266
1378
|
Mutation?: MutationResolvers<ContextType>;
|
1267
1379
|
IdentityMutation?: IdentityMutationResolvers<ContextType>;
|
1268
1380
|
IdentityUserMutation?: IdentityUserMutationResolvers<ContextType>;
|
@@ -1275,6 +1387,9 @@ export declare type Resolvers<ContextType = IdentityContext> = ResolversObject<{
|
|
1275
1387
|
IdentityRoleMutation?: IdentityRoleMutationResolvers<ContextType>;
|
1276
1388
|
IdentityAuthenticationLogMutation?: IdentityAuthenticationLogMutationResolvers<ContextType>;
|
1277
1389
|
IdentityTokenMutation?: IdentityTokenMutationResolvers<ContextType>;
|
1390
|
+
IdentityOauthMutation?: IdentityOauthMutationResolvers<ContextType>;
|
1391
|
+
ProtoIoRestorecommerceOauthExchangeCodeResponse?: ProtoIoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType>;
|
1392
|
+
IoRestorecommerceOauthExchangeCodeResponse?: IoRestorecommerceOauthExchangeCodeResponseResolvers<ContextType>;
|
1278
1393
|
}>;
|
1279
1394
|
/**
|
1280
1395
|
* @deprecated
|
@@ -7,6 +7,7 @@ const handlebars_1 = require("handlebars");
|
|
7
7
|
const utils_1 = require("../oidc/utils");
|
8
8
|
const uuid = require("uuid");
|
9
9
|
const user_1 = require("@restorecommerce/rc-grpc-clients/dist/generated/io/restorecommerce/user");
|
10
|
+
const jose = require("jose");
|
10
11
|
const Router = eval('require("koa-router")');
|
11
12
|
const bodyParser = eval('require("koa-body")');
|
12
13
|
const createOAuth = () => {
|
@@ -17,10 +18,35 @@ const createOAuth = () => {
|
|
17
18
|
ctx.body = await exports.login((await ctx.identitySrvClient.oauth.GenerateLinks({})).links);
|
18
19
|
return next();
|
19
20
|
});
|
21
|
+
router.get('/oauth2-logout', async (ctx, next) => {
|
22
|
+
ctx.cookies.set('token', undefined);
|
23
|
+
ctx.status = 303;
|
24
|
+
ctx.redirect('/oauth2-login');
|
25
|
+
ctx.body = 'Redirecting to login page';
|
26
|
+
return next();
|
27
|
+
});
|
20
28
|
router.get('/oauth2-urls', async (ctx, next) => {
|
21
29
|
ctx.body = (await ctx.identitySrvClient.oauth.GenerateLinks({})).links;
|
22
30
|
return next();
|
23
31
|
});
|
32
|
+
router.get('/oauth2-account', async (ctx, next) => {
|
33
|
+
const token = ctx.cookies.get('token');
|
34
|
+
if (!token) {
|
35
|
+
ctx.body = 'user not logged in';
|
36
|
+
return next();
|
37
|
+
}
|
38
|
+
const ids = ctx.identitySrvClient;
|
39
|
+
const user = await ids.user.FindByToken({
|
40
|
+
token: token
|
41
|
+
});
|
42
|
+
if (!user || !user.payload) {
|
43
|
+
ctx.body = 'user not logged in';
|
44
|
+
return next();
|
45
|
+
}
|
46
|
+
ctx.type = 'html';
|
47
|
+
ctx.body = await exports.account(user.payload);
|
48
|
+
return next();
|
49
|
+
});
|
24
50
|
router.post('/oauth2-register', async (ctx, next) => {
|
25
51
|
const ids = ctx.identitySrvClient;
|
26
52
|
const body = ctx.request.body;
|
@@ -34,8 +60,11 @@ const createOAuth = () => {
|
|
34
60
|
guest: false,
|
35
61
|
}));
|
36
62
|
if (user.payload) {
|
37
|
-
|
38
|
-
ctx.
|
63
|
+
const token = await upsertUserToken(ids, user.payload.id);
|
64
|
+
ctx.cookies.set('token', token);
|
65
|
+
ctx.status = 303;
|
66
|
+
ctx.redirect('/oauth2-account');
|
67
|
+
ctx.body = 'Redirecting to account page';
|
39
68
|
return next();
|
40
69
|
}
|
41
70
|
if (user.status) {
|
@@ -50,38 +79,39 @@ const createOAuth = () => {
|
|
50
79
|
code: ctx.request.query['code'],
|
51
80
|
state: ctx.request.query['state']
|
52
81
|
});
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
ctx.body = await exports.register(user.email);
|
58
|
-
return next();
|
59
|
-
}
|
60
|
-
else {
|
61
|
-
ctx.body = 'Internal Error';
|
62
|
-
return next();
|
63
|
-
}
|
82
|
+
if (!user.user || !user.user.payload || !user.token || (user.user.status && user.user.status.code !== 200)) {
|
83
|
+
ctx.type = 'html';
|
84
|
+
ctx.body = await exports.register(user.email || '');
|
85
|
+
return next();
|
64
86
|
}
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
id: uuid.v4().replace(/-/g, ''),
|
70
|
-
type: 'access_token',
|
71
|
-
expiresIn: expiresIn,
|
72
|
-
payload: utils_1.marshallProtobufAny({
|
73
|
-
accountId: user.user.payload.id,
|
74
|
-
exp: expiresIn,
|
75
|
-
jti: token
|
76
|
-
})
|
77
|
-
});
|
78
|
-
ctx.type = 'html';
|
79
|
-
ctx.body = await exports.account(user.user.payload);
|
87
|
+
ctx.cookies.set('token', user.token.token);
|
88
|
+
ctx.status = 303;
|
89
|
+
ctx.redirect('/oauth2-account');
|
90
|
+
ctx.body = 'Redirecting to account page';
|
80
91
|
return next();
|
81
92
|
});
|
82
93
|
return router;
|
83
94
|
};
|
84
95
|
exports.createOAuth = createOAuth;
|
96
|
+
const upsertUserToken = async (ids, accountId) => {
|
97
|
+
const token = new jose.UnsecuredJWT({})
|
98
|
+
.setIssuedAt()
|
99
|
+
.setExpirationTime('30d')
|
100
|
+
.encode();
|
101
|
+
// 1 Month
|
102
|
+
const expiresIn = Date.now() + (1000 * 60 * 60 * 24 * 30);
|
103
|
+
await ids.token.upsert({
|
104
|
+
id: uuid.v4().replace(/-/g, ''),
|
105
|
+
type: 'access_token',
|
106
|
+
expiresIn: expiresIn,
|
107
|
+
payload: utils_1.marshallProtobufAny({
|
108
|
+
accountId: accountId,
|
109
|
+
exp: expiresIn,
|
110
|
+
jti: token
|
111
|
+
})
|
112
|
+
});
|
113
|
+
return token;
|
114
|
+
};
|
85
115
|
let layoutHbs;
|
86
116
|
const layout = async (context) => {
|
87
117
|
if (!layoutHbs) {
|
@@ -16,8 +16,12 @@
|
|
16
16
|
<div class="rc-login flex col justify-center">
|
17
17
|
<div class="self-center justify-center rc-account scale110p">
|
18
18
|
<h2>{{title}}</h2>
|
19
|
-
<div class="
|
19
|
+
<div class="col center justify-center">
|
20
20
|
<h3>Welcome {{user.firstName}} {{user.lastName}}!</h3>
|
21
|
+
|
22
|
+
<a href="/oauth2-logout" class="button emphasized">
|
23
|
+
<div class="icogram"><span class="text">Logout</span></div>
|
24
|
+
</a>
|
21
25
|
</div>
|
22
26
|
</div>
|
23
27
|
</div>
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@restorecommerce/facade",
|
3
|
-
"version": "0.
|
3
|
+
"version": "0.3.1",
|
4
4
|
"description": "Facade for Restorecommerce microservices",
|
5
5
|
"main": "dist/index.js",
|
6
6
|
"typings": "dist/index.d.ts",
|
@@ -27,12 +27,13 @@
|
|
27
27
|
"@restorecommerce/grpc-client": "^0.3.1",
|
28
28
|
"@restorecommerce/kafka-client": "^0.3.1",
|
29
29
|
"@restorecommerce/logger": "^0.12.1",
|
30
|
-
"@restorecommerce/rc-grpc-clients": "^0.4.
|
30
|
+
"@restorecommerce/rc-grpc-clients": "^0.4.2",
|
31
31
|
"@restorecommerce/service-config": "^0.4.25",
|
32
32
|
"apollo-server-koa": "^2.21.2",
|
33
33
|
"debug": "^4.3.1",
|
34
34
|
"googleapis": "^92.0.0",
|
35
35
|
"handlebars": "^4.7.7",
|
36
|
+
"jose": "^4.5.0",
|
36
37
|
"koa": "^2.13.1",
|
37
38
|
"koa-body": "^4.2.0",
|
38
39
|
"koa-helmet": "^6.1.0",
|
@@ -106,5 +107,5 @@
|
|
106
107
|
"publishConfig": {
|
107
108
|
"access": "public"
|
108
109
|
},
|
109
|
-
"gitHead": "
|
110
|
+
"gitHead": "e605e326cc47380032ef2217b6552a1068e9c0de"
|
110
111
|
}
|