Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Activity
    Martin Lehmann
    @theneva
    så det er definitivt utløpt
    Sveinung Farestveit
    @fsveinung
    !!
    Martin Lehmann
    @theneva
    ja, det… ja
    vi sjekker at token-et er gyldig ved å gjøre GET /api/init/companies og sjekke at vi (1) får en 2xx-respons og (2) at ett av selskapene inneholder orgnummeret vi forventer. og det går fint, selv med expired token
    Sveinung Farestveit
    @fsveinung
    Testet med expired token her, og de gir 401 umiddelbart.
    Kan du pm token til meg så kan jeg teste?
    Martin Lehmann
    @theneva

    bare for å være 100 % sikker:

    jeg stappa tokenet inn i jwt.io, og det sier "exp": 1570623056, som ser ut som et UTC timestamp

    JS kjører millisekunder i timestamps, så

    new Date(1570623056 * 1000)
    Wed Oct 09 2019 14:10:56 GMT+0200 (Central European Summer Time)
    ergh… jeg tok bort credentials: 'include' fra siden, og nå får jeg 500
    image.png
    er det mulig at jeg er logget inn hvis jeg ser denne siden?
    nå får jeg 500 og TIJI69YU: Value cannot be null. Parameter name: value
    så kan hende auth-greia er en rød sild, og at jeg sendte med en eller annen cookie som tok presedens over Authorization-headeren(?)
    virker rart for meg—særlig siden jeg sender requestene fra innloggingssida deres, som impliserer(?) at jeg ikke er logga inn—men
    Martin Lehmann
    @theneva
    nei, bare glem det. jeg må ha loka til noe annet
    fetch("https://unieconomy.no/api/init/companies", {
        headers: {
            authorization:
                "Bearer <tokenet som utløp Wed Oct 09 2019 14:10:56 GMT+0200 (Central European Summer Time)>",
        },
    })
    denne requesten fra konsollen mens jeg står på https://unieconomy.no/#/init/login gir meg en liste med selskaper. fetch inkluderer ikke credentials by default, så…
    Sveinung Farestveit
    @fsveinung
    Men det ser ut som du har rett i at "/api/init/companies" gir tilbake liste over selskaper etter at token er utgått. Dette er nok en feil relatert til overgangen fra "long-lived" tokens til "refresh-tokens".
    Martin Lehmann
    @theneva
    uff da
    Sveinung Farestveit
    @fsveinung
    Dvs. levetiden (som serveren tolker) er litt lenger en den nye token-levetiden
    Det vil bli fikset :)
    Martin Lehmann
    @theneva
    og det gjelder bare for /api/init/companies, ikke /api/biz/…?
    Sveinung Farestveit
    @fsveinung
    det stemmer
    så i verste fall får du ut listen over dine selskaper
    Martin Lehmann
    @theneva
    ikke verdens undergang
    så lenge det er såpass begrenset :)
    er det noen fornuftig måte for meg å sjekke om token-et mitt har utløpt nå nå? gjøre en request med token-et til noe bak /api/biz/… og sjekke om jeg får 401 eller 2xx?
    Sveinung Farestveit
    @fsveinung
    Uansett, Takk for at du tok opp temaet :)
    Martin Lehmann
    @theneva
    np!
    er vel litt nærmere å løse problemet mitt også, kanskje. skjønner i hvert fall hva som er galt
    Anders Urrang
    @urrang
    Frontend?
    Hvis du bruker et oidc bibliotek har nok det støtte for å sjekke expiration på token, samt silent-renew som kan være nyttig med såpass kortlevde tokens.
    Hvis ikke kan du decode tokenet med f.eks https://github.com/auth0/jwt-decode og sjekke exp feltet (expired = Date.now() >= decodedToken.exp * 1000; hvis jeg ikke husker helt feil).
    Martin Lehmann
    @theneva
    @urrang takk, jeg kan jo bare sjekke expiry :facepalm:
    Martin Lehmann
    @theneva
    Har dere noen dokumentasjon på forskjellen mellom single tenant og multi tenant? Har prøvd å google, men finner bare én setning helt til slutt her https://unimicro.github.io/developer/getting-started/ og et eksempel her https://developer.unieconomy.no/wiki/introduction/getting-started/web-site-auth-code-flow som ikke sier noe om hva "multi tenant" faktisk betyr
    Martin Lehmann
    @theneva
    Det jeg helt konkret lurer på er hvordan brukeren autoriserer en multi-tenant-klient til å interagere med brukerens organisasjoner i Uni Economy. Kan en bruker med organisasjoner i Uni Economy autorisere vår klient til å kun se/behandle 2 av dem?
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    Forskjellen på single-tenant og multi-tenant er, enkelt forklart, at om deres integrasjon er markert som single-tenant, så velger brukeren hvilket "uni economy selskap" han logger på med. Om deres integrasjon er markert med "multi-tenant" så logger brukeren på, og så velger hvilket selskap en skal gjøre forespørsler på via "api/init/companies". En velger da selskap ved å sette CompanyKey-headeren med "Key" fra det selskapet en ønsker.
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    @theneva beklager at jeg var litt rask til å svare. Det er ikke mulig nå, men vi arbeider med det.
    Martin Lehmann
    @theneva
    Ah! Så hvis klienten er multi-tenant, får den tilgang til alle organisasjonene brukeren har tilgang til, sant?
    Det høres topp ut at det arbeides med—vi vil helst ikke ha tilgang til mer enn det brukeren vil gi oss
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    Ja, for nå. Vi arbeider med å begrense det, slik at en kun får tilgang til de selskapene som brukerne ønsker
    Martin Lehmann
    @theneva
    Flott :)
    Adrian Wiik
    @adrianAtProresult
    Hei, jeg har 2 spørsmål:
    1:
    Si at en kunde med tilgang til flere Uni Economy-kontoer logger inn i integrasjonen (auth-code flow) for å hente ut tokens for et firma. Etterpå viser det seg at han har valgt feil firma, og vil logge inn på nytt for å velge et annet firma. Når en bruker samme linken (https://(test-)login.unieconomy.no/connect/authorize?scope=<scopes>&response_type=code&client_id=<clientID>&redirect_uri=<uri>) til å logge inn, blir man automatisk gitt tokens for samme firma, istedenfor å bli tatt til login-siden. Er det en måte å unngå dette på, slik at vi kommer inn i ny pålogging hver gang man bruker linken? Foreløpig må vi vente en time, og så evt. ringe kunden opp igjen senere.
    2:
    I den siste tiden (mellom 2019-11-12 01:20:00 og 2019-11-18 06:00) er det flere av våre kunder (ikke alle) som ikke får fornyet access tokens vha. refresh tokens (får "invalid_grant"). Jeg oppdaget dette først nå, så disse har stanget i veggen siden de først ikke fungerte. Kan det ha skjedd noe med refresh tokenet i tiden mellom utstedelse til fornyelse? Jeg klarer ikke å se noe spesielt mønster hos kundene, og sliter med å finne årsaken. Tidspunktene er uavhengig av hverandre (men det ser ut til å skje på natten), og vi har kunder som ikke er berørt av problemet. Har dere noe mer informasjon fra deres ende? Er det et kjent problem?
    konsolidering
    @konsolidering
    @adrianAtProresult vi har opplevd samme problem som du beskriver i punkt 2. Vi har kunde som har logget inn og oppdatert access token, men så snart man skal generere ny access token fra refresh token så får vi "invalid_grant". Det kan gjerne gå bra noen ganger med bruk at refresh token, men så plutselig stopper det. Dette skjer også på dagtid for våre kunder.
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    @adrianAtProresult Hei
    1) Dette kan løses ved at dere gjør et kall til "https://login.unieconomy.no/account/logout", før dere sender brukeren tilbake til pålogging. Da slettes sessionen og han kan logge inn og velge selskap igjen.
    2) Dette er noe som vi ikke har vært klar over og som vi skal undersøke nærmere. Vi kommer tilbake til dere med oppdatert informasjon når vi har fått undersøkt.
    Erik Andreas Larsen
    @larsensolutions
    Hei,
    Salg informerer om at i testmiljøet nå skal være mulig å legge inn en ekstern referanse (url) for purringer/inkasso/faktura? Har dere noe mer info om dette? Hvilket endepunkt(er) og felt?
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    @larsensolutions Hei, det er nå et nytt felt på CustomerInvoice kalt ExternalReference, som kan brukes til dette. Men har en begrensning på 20 tegn.
    Erik Andreas Larsen
    @larsensolutions
    @sm4llfish Takk, fant den ikke i swagger!
    Jo Are Ingvaldsen Rivelsrud
    @sm4llfish
    @cycad7412 you credentials is only for test. So test.unieconomy.no/api, not dev.
    cycad7412
    @cycad7412

    Hi, I have a issue about «System.IdentityModel.Tokens.Jwt» in CreateClientToken. My system is already using System.IdentityModel.Tokens.Jwt 4.0.0 with targetFramework="net461", but It doesn’t working like 5.6.0. Its happened serious error when updating from 4.0.0 to 5.6.0, so I cannot update it.
    Is there any solution how to work it with 4.0.0 version

    ================== Begin : Issue Line ======================

    // Step 1 - Create a client token
    public static string CreateClientToken(string clientId, string audience)
    {
    var certificate = new X509Certificate2(@"D:\Cloud\Providers.UniMicro\UniCert.p12", "JN7pAFN6N42BJpK2G53hZIvuVXyOrATAuvUySbhQS7zE8k0QkQZqbQzDiYJp");

            var now = DateTime.UtcNow;
    
            var securityKey = new X509SecurityKey(certificate);
            var signingCredentials = new SigningCredentials(
                securityKey,
                SecurityAlgorithms.RsaSha256
            );
    
            var token = new System.IdentityModel.Tokens.Jwt.JwtSecurityToken(
                    clientId,
                    audience,
                    new List<Claim>()
                    {
                        new Claim("jti", Guid.NewGuid().ToString()),
                        new Claim(JwtClaimTypes.Subject, clientId),
                        new Claim(JwtClaimTypes.IssuedAt, now.ToEpochTime().ToString(), ClaimValueTypes.Integer64)
    
                    },
                    now,
                    now.AddMinutes(1),
                    signingCredentials
                );
    
            var tokenHandler = new System.IdentityModel.Tokens.Jwt.JwtSecurityTokenHandler();
    
            return tokenHandler.WriteToken(token);
    
        }

    ================== End : Issue Line ======================

    If you have any sample source or solution, could you please share about it.

    cycad7412
    @cycad7412
    Or Is there another way to not use "System.IdentityModel.Tokens.Jwt.JwtSecurityToken" and can success to get token value in Server?
    Adrian Wiik
    @adrianAtProresult
    @sm4llfish Hei, har dere noen oppdateringer ang. fornying av access token som feiler med invalid_grant? :)
    cycad7412
    @cycad7412

    "Microsoft.IdentityModel.Tokens.SigningCredentials" is not supported in System.IdentityModel.Tokens.Jwt, Version=4.0.0.0

    Just supported to "Tokens.SigningCredentials", It is System.IdentityModel, I think.

    Torgeir-Hansen
    @Torgeir-Hansen
    Hei, jeg prøver å registrere meg på https://test.unieconomy.no/#/init/sign-up som dokumentasjonen linker til, men fikk feilmelding "Error creating company license. Cannot insert the value NULL into column 'StartDate', table test-elsa.dbo.Customer, column does not allow nulls."
    Og når jeg nå i etterkant prøver å logge inn på test.unieconomy.no får jeg "Det ser ut som du mangler lisens på Uni Economy. Vennligst gå til registrering for å prøve gratis". Men det funker jo ikke nå som jeg åpenbart er registrert i en del av systemet, men ikke i Customer tabellen? ;)