wip: more or less redirect
This commit is contained in:
parent
8a1a0d757e
commit
63dc2eb664
|
@ -316,6 +316,17 @@ export class ApiAdmentum extends EventEmitter implements Api {
|
|||
)
|
||||
// https://login.grandid.com/?sessionid=234324
|
||||
// => 234324
|
||||
console.log('url', url)
|
||||
|
||||
// Logged in: https://skola.admentum.se/overview
|
||||
if (url.includes('overview')) {
|
||||
console.log('already logged in to admentum')
|
||||
this.isLoggedIn = true
|
||||
this.personalNumber = personalNumber
|
||||
this.emit('login')
|
||||
return new DummyStatusChecker()
|
||||
}
|
||||
|
||||
const sessionId = url.split('=').pop()
|
||||
console.log('sessionId', sessionId)
|
||||
console.log('adentum session id', sessionId)
|
||||
|
@ -339,12 +350,12 @@ export class ApiAdmentum extends EventEmitter implements Api {
|
|||
|
||||
|
||||
const locomotiveUrl = redirectLocomotive(sessionId)
|
||||
const response = await this.fetch('follow-locomotive', locomotiveUrl, {
|
||||
console.log('calling locomotive url: ', locomotiveUrl);
|
||||
/*const response = await this.fetch('follow-locomotive', locomotiveUrl, {
|
||||
method: 'GET',
|
||||
redirect: 'follow',
|
||||
});
|
||||
console.log('locomotive response', response)
|
||||
console.log('locomotive url', locomotiveUrl);
|
||||
});*/
|
||||
//console.log('locomotive response', response)
|
||||
const callbackResponse = await this.followRedirects(locomotiveUrl);
|
||||
console.log('final response:', callbackResponse);
|
||||
//const testChildren = await this.getChildren()
|
||||
|
@ -369,8 +380,9 @@ export class ApiAdmentum extends EventEmitter implements Api {
|
|||
method: 'GET',
|
||||
redirect: 'manual', // Disable automatic redirects
|
||||
});
|
||||
|
||||
console.log('follow-redirect response', response);
|
||||
if (response.status >= 300 && response.status < 400) {
|
||||
console.log('response status:', response.status);
|
||||
const newLocation = response.headers.get('location');
|
||||
if (!newLocation) {
|
||||
throw new Error('Redirect response missing location header');
|
||||
|
@ -378,6 +390,7 @@ export class ApiAdmentum extends EventEmitter implements Api {
|
|||
currentUrl = newLocation;
|
||||
redirectCount++;
|
||||
} else {
|
||||
console.log('response status, not reidrect:', response.status);
|
||||
// The response is not a redirect, return it
|
||||
return response;
|
||||
}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import { Fetcher, LoginStatusChecker } from '@skolplattformen/api'
|
||||
import { EventEmitter } from 'events'
|
||||
import { bankIdCheckUrl } from './routes'
|
||||
import { bankIdCheckUrl, redirectLocomotive } from './routes'
|
||||
|
||||
export class GrandidChecker extends EventEmitter implements LoginStatusChecker {
|
||||
private fetcher: Fetcher
|
||||
|
@ -28,6 +28,7 @@ export class GrandidChecker extends EventEmitter implements LoginStatusChecker {
|
|||
'x-requested-with': 'XMLHttpRequest',
|
||||
},
|
||||
}).then((res) => {
|
||||
console.log('bankid full result', res)
|
||||
return res.json()
|
||||
})
|
||||
console.log('bankid result', result)
|
||||
|
@ -35,6 +36,28 @@ export class GrandidChecker extends EventEmitter implements LoginStatusChecker {
|
|||
const isError = result.response?.status === 'error'
|
||||
// https://mNN-mg-local.idp.funktionstjanster.se/mg-local/auth/ccp11/grp/pollstatus
|
||||
if (ok) {
|
||||
//===
|
||||
/*const parts = this.basePollingUrl.split('?');
|
||||
let locoUrl = '';
|
||||
if (parts.length === 2) {
|
||||
const queryString = parts[1];
|
||||
const queryParams = queryString.split('&');
|
||||
for (const param of queryParams) {
|
||||
const [key, value] = param.split('=');
|
||||
if (key === 'sessionid') {
|
||||
locoUrl = redirectLocomotive(value);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log("Invalid URL format.");
|
||||
}
|
||||
|
||||
console.log('calling fff locomotive url: ', locoUrl)
|
||||
const response = await this.fetcher('follow-locomotive', locoUrl, {
|
||||
method: 'GET',
|
||||
redirect: 'manual',
|
||||
});
|
||||
console.log('locomotive response', response)*/
|
||||
this.emit('OK')
|
||||
} else if (isError) {
|
||||
console.log('polling error')
|
||||
|
@ -45,7 +68,7 @@ export class GrandidChecker extends EventEmitter implements LoginStatusChecker {
|
|||
setTimeout(() => this.check(), 3000)
|
||||
}
|
||||
} catch (err) {
|
||||
console.log('Error validating login to Hjärntorget', err)
|
||||
console.log('Error validating login to Admentum', err)
|
||||
this.emit('ERROR')
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,6 +9,15 @@ const admentum = new Admentum(fetch, {})
|
|||
|
||||
const run = async () => {
|
||||
const sessionId = await admentum.login('7612040233')
|
||||
|
||||
admentum.on('login', async () => {
|
||||
console.log('login YEAYEAY', )
|
||||
|
||||
// ITerate and log all cookies
|
||||
cookieJar.getCookies('https://www.admentum.se').forEach((cookie) => {
|
||||
console.log(cookie.toString())
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
run()
|
||||
|
|
Loading…
Reference in New Issue