Read both farmmaps currentuser and authenticate userinfo
FarmMaps.Develop/FarmMapsLib/pipeline/head This commit looks good Details

2022.01
Willem Dantuma 2020-06-10 21:53:54 +02:00
parent e0d585e125
commit 978cbdabfc
4 changed files with 14 additions and 7 deletions

View File

@ -4,6 +4,7 @@ import { IItemTypes } from '../models/item.types';
import { IListItem } from '../models/list.item';
import { IUser } from '../models/user';
import { IItem } from '../models/item';
import { UserInfo } from 'angular-oauth2-oidc';
export const INITUSER = '[AppCommon] InitUser';
export const INITUSERSUCCESS = '[AppCommon] InitUserSuccess';
@ -62,7 +63,7 @@ export class InitUser implements Action {
export class InitUserSuccess implements Action {
readonly type = INITUSERSUCCESS;
constructor(public user:IUser ) { }
constructor(public user:IUser,public userinfo:UserInfo ) { }
}
export class InitUserPackagesSuccess implements Action {

View File

@ -1,9 +1,9 @@
import { Injectable } from '@angular/core';
import { Router } from '@angular/router';
import { OAuthService } from 'angular-oauth2-oidc';
import { OAuthService,UserInfo } from 'angular-oauth2-oidc';
import { Store, Action } from '@ngrx/store';
import { Effect, Actions,ofType } from '@ngrx/effects';
import { Observable , defer , of } from 'rxjs';
import { Observable , defer , of,from } from 'rxjs';
import { withLatestFrom,mergeMap,switchMap,map,catchError} from 'rxjs/operators';
import * as appCommonActions from '../actions/app-common.actions';
import * as appCommonReducers from '../reducers/app-common.reducer';
@ -44,9 +44,10 @@ export class AppCommonEffects {
ofType(appCommonActions.INITUSER),
withLatestFrom(this.store$.select(appCommonReducers.selectGetInitialized)),
switchMap(([action, initialized]) => {
if(!initialized) {
if(!initialized) {
return this.userService$.getCurrentUser().pipe(
map((user: IUser) => new appCommonActions.InitUserSuccess(user)),
withLatestFrom(from(this.oauthService$.loadUserProfile())),
switchMap(([user,userInfo]) => {return of(new appCommonActions.InitUserSuccess(user,userInfo as UserInfo))} ),
catchError(error => of(new appCommonActions.Fail(error))))
} else {
return [];

View File

@ -36,7 +36,12 @@ export function reducer(state = initialState, action: appCommonActions.Actions )
switch (action.type) {
case appCommonActions.INITUSERSUCCESS: {
let a = action as appCommonActions.InitUserSuccess;
return tassign(state, { user: a.user,initialized: true });
var user:IUser = {
code:a.user.code,
email:a.userinfo["email"],
name:a.userinfo["name"]
};
return tassign(state, { user: user,initialized: true });
}
case appCommonActions.INITROOTSUCCESS: {
let a = action as appCommonActions.InitRootSuccess;

View File

@ -14,7 +14,7 @@ export class Id4AuthconfigFactory implements IAuthconfigFactory {
authConfig.redirectUri = window.location.origin + "/cb";
authConfig.clientId = appConfig.getConfig("clientId");
authConfig.customQueryParams = { audience: appConfig.getConfig("audience") };
authConfig.scope = "profile api offline_access";
authConfig.scope = "openid profile api offline_access";
authConfig.disableAtHashCheck = true;
authConfig.responseType = "code";
authConfig.requireHttps = appConfig.getConfig("requireHttps");