From 5c477e1cf151f0bca3f6de25ed5cdfcab1137c81 Mon Sep 17 00:00:00 2001 From: Emil Lindqvist Date: Sun, 5 Dec 2021 15:31:43 +0100 Subject: [PATCH 1/2] Add support for running api-test-app with api-hjarntorget --- apps/api-test-app/src/main.js | 23 +++++++++++++--------- libs/api-hjarntorget/lib/apiHjarntorget.ts | 11 ++++------- 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/apps/api-test-app/src/main.js b/apps/api-test-app/src/main.js index 24f282b6..6bd0599d 100644 --- a/apps/api-test-app/src/main.js +++ b/apps/api-test-app/src/main.js @@ -14,9 +14,13 @@ const path = require('path') const fs = require('fs') const HttpProxyAgent = require('https-proxy-agent') const agentWrapper = require('./app/agentFetchWrapper') -const init = require('@skolplattformen/api-skolplattformen').default +const initSkolplattformen = require('@skolplattformen/api-skolplattformen').default +const initHjarntorget = require('@skolplattformen/api-hjarntorget').default + +const [, , personalNumber, platform] = process.argv +const isHjarntorget = platform && platform.startsWith('hj') +const init = isHjarntorget ? initHjarntorget : initSkolplattformen; -const [, , personalNumber] = process.argv process.env.NODE_TLS_REJECT_UNAUTHORIZED = '0' const cookieJar = new CookieJar() let bankIdUsed = false @@ -136,10 +140,9 @@ async function Login(api) { try { console.log('Attempt to use saved session cookie to login') const rawContent = await readFile(`${recordFolder}/latestSessionCookie.txt`) - const sessionCookie = JSON.parse(rawContent) - - await api.setSessionCookie(`${sessionCookie.key}=${sessionCookie.value}`) - + const sessionCookies = JSON.parse(rawContent) + await api.setSessionCookie(`${sessionCookies[0].key}=${sessionCookies[0].value}`) + useBankId = false console.log('Login with old cookie succeeded') } catch (error) { @@ -177,10 +180,12 @@ function ensureDirectoryExistence(filePath) { fs.mkdirSync(dirname) } + function getSessionCookieFromCookieJar() { - const cookies = cookieJar.getCookiesSync('https://etjanst.stockholm.se') - const sessionCookie = cookies.find((c) => c.key === 'SMSESSION') - return sessionCookie + const cookieUrl = isHjarntorget ? 'https://hjarntorget.goteborg.se' : 'https://etjanst.stockholm.se' + const cookies = cookieJar.getCookiesSync(cookieUrl) + const sessionCookieKey = isHjarntorget ? 'JSESSIONID' : 'SMSESSION' + return cookies.find(c => c.key === sessionCookieKey) } const record = async (info, data) => { diff --git a/libs/api-hjarntorget/lib/apiHjarntorget.ts b/libs/api-hjarntorget/lib/apiHjarntorget.ts index 6ab43814..1bebf739 100644 --- a/libs/api-hjarntorget/lib/apiHjarntorget.ts +++ b/libs/api-hjarntorget/lib/apiHjarntorget.ts @@ -147,13 +147,8 @@ export class ApiHjarntorget extends EventEmitter implements Api { } async setSessionCookie(sessionCookie: string): Promise { - await this.fetch('login-cookie', hjarntorgetUrl, { - headers: { - cookie: sessionCookie, - }, - redirect: 'manual', - }) - + this.cookieManager.setCookieString(sessionCookie, hjarntorgetUrl) + const user = await this.getUser() if (!user.isAuthenticated) { throw new Error('Session cookie is expired') @@ -167,9 +162,11 @@ export class ApiHjarntorget extends EventEmitter implements Api { console.log('fetching user') const currentUserResponse = await this.fetch('current-user', currentUserUrl) if (currentUserResponse.status !== 200) { + console.log('is not authenticated!') return { isAuthenticated: false } } + console.log('fetching user worked...') const retrivedUser = await currentUserResponse.json() return { ...retrivedUser, isAuthenticated: true } } From 601e92b230eaf81ad08a83dbaee69b3c57807a3a Mon Sep 17 00:00:00 2001 From: Emil Lindqvist Date: Sun, 5 Dec 2021 16:48:03 +0100 Subject: [PATCH 2/2] Remove unncessary console.log statements --- libs/api-hjarntorget/lib/apiHjarntorget.ts | 2 -- 1 file changed, 2 deletions(-) diff --git a/libs/api-hjarntorget/lib/apiHjarntorget.ts b/libs/api-hjarntorget/lib/apiHjarntorget.ts index 1bebf739..104009f3 100644 --- a/libs/api-hjarntorget/lib/apiHjarntorget.ts +++ b/libs/api-hjarntorget/lib/apiHjarntorget.ts @@ -162,11 +162,9 @@ export class ApiHjarntorget extends EventEmitter implements Api { console.log('fetching user') const currentUserResponse = await this.fetch('current-user', currentUserUrl) if (currentUserResponse.status !== 200) { - console.log('is not authenticated!') return { isAuthenticated: false } } - console.log('fetching user worked...') const retrivedUser = await currentUserResponse.json() return { ...retrivedUser, isAuthenticated: true } }