Tellen hoeveel dezelfde accounts actief zijn (andere PC, andere browser)

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Java Ontwikkelaar

Java/Kotlin Developer Ben jij een ervaren Java/Kotlin developer met een passie voor het automatiseren van bedrijfsprocessen? Wil je graag deelnemen aan uitdagende projecten bij aansprekende klanten? En ben je op zoek naar een professioneel, ambitieus en dynamisch bedrijf om je carrière verder te ontwikkelen? Kom dan ons team bij Ritense in Amsterdam versterken! Zo ziet de functie eruit: Als Java/Kotlin developer bij Ritense ben je verantwoordelijk voor de ontwikkeling en implementatie van applicaties die bedrijfsprocessen automatiseren, zodat onze klanten slimmer, efficiënter en klantgerichter kunnen werken. Als developer ben je in de lead en zorg je voor de correcte oplevering van

Bekijk vacature »

Back end developer Digital agency

Functie Heb jij altijd al eens bij een bedrijf willen werken waar jij géén nummertje bent, die alleen maar uitvoerend werk doet? Dan zou je hier perfect passen! Tuurlijk, je werkt aan projecten voor grote of kleine bedrijven… Het enige verschil hier is, jouw mening telt hier écht. Jouw inbreng wordt gewaardeerd, serieus genomen en gebruikt. En vergeet niet, je werkt niet alleen aan deze projecten. Er werken in totaal ruim 20 developers en designers, onderverdeeld over 3 development teams. Voornamelijk bestaande uit Medior en Senior developers, die samen voor een inspirerende en ambitieuze omgeving zorgen. Hun visie is namelijk

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Ervaren PHP Developer

Functieomschrijving PHP Developer met brede ervaring gezocht! Ben jij een Full Stack PHP Developer met brede ervaring die toe is aan een volgende stap? Lees dan snel verder! Voor onze eindklant in de regio Nunspeet zijn wij op zoek naar een ervaren PHP Developer die het IT Team van deze organisatie gaat versterken. Wij zoeken een enthousiaste en breed georiënteerde IT-er die er voor gaat zorgen dat deze innovatieve organisatie de volgende stap gaat maken. Om deze functie goed uit te kunnen voeren moet je communicatief goed zijn en in staat zijn om zelfstandig problemen op te lossen. Daarnaast bestaat

Bekijk vacature »

C# .NET Developer

Dit ga je doen Als developer nieuwe gave features implementeren; Werken met technieken als C# .NET en (REST) API's webservices; Ontwikkelen van koppelingen middels API's; Maken van technische keuzes en beslissingen over de architectuur; Junior collega's coachen; Initiatief nemen voor nieuwe technische mogelijkheden; Je bent een belangrijke schakel - en vindt het leuk - om te schakelen met de business. Hier ga je werken In een klein team van professionals ben je als C# .NET Developer verantwoordelijk voor het ontwikkelen van één van de applicaties voor het grootste inhouse product: een applicatie voor alles omtrent hypotheken. De programmeertaal die je

Bekijk vacature »

Oracle Apex Developer

Dit ga je doen Jouw taken bestaan uit: Het bouwen maatwerk Oracle applicaties voor Europese business units; Het implementeren van de nieuwste technieken om te blijven innoveren; Actief meedenken en aandragen van verbetervoorstellen. Hier ga je werken Deze organisatie in de regio Veenendaal is een van wereld grootste retailers met ruim 16.000 winkels in 27 markten en jaarlijks ruim 5,3 miljard klanten die winkelen bij een van hun welbekende retailmerken. Binnen de organisatie is er een IT Group actief die dient als IT Service Provider voor de hele organisatie en waar dagelijks IT'ers werken aan state-of-the-art IT oplossingen. Dit doen

Bekijk vacature »

Medior/Senior Front-end Developers gezocht (Utrech

Functie Het team bestaat uit 10+ gespecialiseerde (veel senior) front-end ontwikkelaars en ontwerpers die werken aan projecten voor klanten van verschillende groottes (kan twee jaar bezig zijn met 1 klant). Je helpt klanten met ingewikkelde front-end vraagstukken, hierbij kun je denken aan: UX/UI design, CI/CD, architectuur en integratie met back-end systemen. De werkzaamheden verricht je op locatie bij de klant, dit is vaak in de Randstad. De organisatiestructuur is plat en er heerst een informele sfeer, zo kun je met vragen dus terecht bij de directie. Er wordt veel nadruk gelegd op het bevorderen van persoonlijke ontwikkeling door middel van

Bekijk vacature »

App Developer

Samen werken aan een gezonder Nederland en toekomstbestendige zorg voor iedereen. Dat is de impact die jij kan hebben als App Developer bij VGZ. Wil jij een bijdrage leveren aan een maatschappij waarin iedereen zich thuis voelt? Bekijk dan de vacature. Uit onderzoek van Computable is VGZ verkozen tot ‘beste niet-ICT werkgever voor ICT’ers van Nederland’ Hoe ook jij het verschil maakt Als App developer werk jij aan het belangrijkste communicatiekanaal van VGZ, namelijk de App! Als App developer bij VGZ maak je onderdeel uit van een van onze App-teams. Met een goede mix van kennis en ervaring zet je

Bekijk vacature »

Randstad B.V.- Freelance Senior Fullstack Develope

Startdatum: 01.05.2023 Richttarief: € 75,00 - €85,00 Duur van de opdracht: 1 jaar Uren per week: 40 Werkmodel: Hybride, dinsdag en donderdag aanwezig op kantoor in Diemen en meer wanneer dit nodig is. Functieomschrijving: De ideale kandidaat gaat onderdeel uitmaken van een junior team binnen het foundation domein. Vanuit het foundation domein werkt dit team samen met andere foundation teams en teams uit het online domein (professionals B2B en B2C) voor het bouwen en integreren van HRM functionaliteiten (verlof en benefits) in de persoonlijke portal van Interim Professionals. Er is meer backend werk dan frontend, maar kandidaat moet beiden leuk

Bekijk vacature »

Software Programmeur PHP - JAVA

Functie Voor een opdrachtgever in omgeving Zoetermeer zijn wij op zoek naar een ontwikkelaar ter versterking van het huidige developers team. Heb jij altijd al willen werken voor een bedrijf, dat veilige netwerkverbindingen levert, door middel van veilige oplossingen, die door middel van de nieuwste technologieën ontwikkelt zijn? Stop dan nu met zoeken! Hoe kan jouw dag er straks uitzien? Je gaat software en webapplicaties ontwikkelen met behulp van de talen C / C++ / PHP. Je gaat technische klussen uitvoeren op locatie bij klanten. Je onderhoudt contact met de projectleider om er zeker van te zijn dat een projecten

Bekijk vacature »

.NET Developer

Functie De perfecte combinatie tussen techniek en vastgoed. Werk samen met de senior software developer om allerlei software van fluX te verbeteren. Gelukkig voel jij je helemaal thuis in de codewereld van .NET. Dus of je nu bezig bent met het verhogen van de conformiteitscore of het automatiseren van allerlei taxatiemodellen, jij weet precies hoe je de doelstellingen realiseert. En dat terwijl je ook samenwerkt met een extern ontwikkelteam. Waar dit team bepaalde softwaresystemen ontwikkelen, richt jij je vooral op onze Nederlands georiënteerde producten en alle wetgeving die daarbij komt kijken. Voor minimaal 32 uur per week verrijk jij onze

Bekijk vacature »

Back-end programmeur

Functieomschrijving Heb jij kort geleden jouw HBO ICT diploma in ontvangst mogen nemen? Of ben je toe aan een nieuwe uitdaging? Voor een uitdagende werkgever in omgeving Waalwijk zijn wij op zoek naar een enthousiaste softwareontwikkelaar met kennis of ervaring met C# en SQL. In een uitdagende rol als C#.NET Developer werk je samen met een enthousiast en informeel team aan het bouwen van maatwerk software voor variërende klanten. Verder ziet jouw takenpakket er als volgt uit: Je draagt bij aan de implementatie van aanpassingen, verbeteringen en aanvullingen in de C# based applicaties; Je houdt je bezig met het ontwikkelen

Bekijk vacature »

Medior Front end developer React

Functie Voor deze functie ben ik op zoek naar een enthousiaste front end developer die communicatief vaardig is. Jij wordt onderdeel van een enthousiast jong team dat werkt aan grote websites. Binnen jouw rol ben jij diegene die de vertaling maakt van design naar functionele code en zorg jij voor goede experience op meerdere platformen. Dit doe je natuurlijk door gebruik te maken van Javascript, HTML, CSS en React. Daarnaast wordt er gebruik gemaakt van Webcomponents en verschillende authenticatie tools. Doordat er hier gestreefd wordt naar de beste gebruikerservaringen, wordt het product constant doorontwikkeld. Hierdoor blijven ze voor op de

Bekijk vacature »

PHP Developer (junior functie)

Functie omschrijving Ben jij een starter en wil je werken bij een jong en leuk bedrijf? Lees dan verder! Wij zijn op zoek naar een PHP Developer binnen een junior functie. Binnen dit bedrijf gaat het om persoonlijke aandacht en ontwikkeling! Je komt te werken voor een leuk communicatiebureau die alles op het gebied van online en offline communicatie doet. Dit doen zij voor verschillende branches, waardoor je aan diverse soorten projecten mag werken, dit maakt deze baan erg leuk! Daarbij werk je aan een door hun zelf ontwikkeld framework welke goed leesbaar is. Je maakt voor bedrijven op maat

Bekijk vacature »

.NET Developer

Functie omschrijving Jij gaat in de functie van Software Developer werken met C# en .NET framework. Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Je komt te werken in een klein team van developers, die zich voornamelijk bezighouden met back-end development. Verder staat dit

Bekijk vacature »

Pagina: 1 2 volgende »

Hans De Ridder

Hans De Ridder

19/01/2018 16:40:42
Quote Anchor link
Is het mogelijk om bij te houden wanneer er op meerdere plekken
en/of op meerdere browsers dezelfde account geopend is?
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.
 
PHP hulp

PHP hulp

11/10/2024 22:40:55
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 16:46:29
Quote Anchor link
Wat versta jij onder afgesloten? Het sluiten van de browser, wissen van de cookies in de browser, of het netjes uitloggen van de gebruiker via de uitlogknop op je site?

Je kan bij het inloggen een unieke code opslaan in de database. Dan kan je zien op hoeveel browsers ingelogd is per gebruiker. Echter is dit niet betrouwbaar, want als ik de cookies zou wissen in de browser, dan kan ik dit op de server nooit weten.
 
Hans De Ridder

Hans De Ridder

19/01/2018 16:58:24
Quote Anchor link
Bij het inloggen (session) worden er bij mij ook 2 cookies geset.
Een vaste en en variabele. Die waarde wordt ook bewaard op de server.
Die gebruik ik her en der, als er niet hoeft te worden ingelogd,
of niet mogelijk om in te loggen.
Dat werkt voor 1 actieve account prima.
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.
Het probleem is nu natuurlijk, dat wanneer een ander met dezelfde
account inlogt, de opgeslagen waarde van de variabele cookie verandert.
En dus de eerste account geblokt wordt om te reageren.
Ik weet dat ik met session dat kan voorkomen.
Maar ik had dus bedacht dat wanneer de eerste account inlogt,
die cookiewaardes bij de 2e, 3e, enz. inlog niet veranderen.
En overal gereageerd kan worden vanaf verschillende browsers, plekken.
Maar die waarde moet wel een keer weer naar 0 uteraard.
Dus zoek ik manier om die switch te maken.
Ik kan er ook voor kiezen dat slechts 1 account actief kan zijn.
Net zoals wel gebeurt bij games.
Maar de eerste vind ik wat gebruiksvriendelijker.

Ik bedenk net dat de 2e, 3e, enz toch altijd moeten inloggen om de actuele cookie waarde te ontvangen. dan zou ik gewoon de session langer kunnen maken.
Had ook al gekeken of er melding mogelijk is om einde van de sessie aan te kondigen.
Maar verder dan een cookie ben ik nog niet gekomen.
Gewijzigd op 19/01/2018 17:13:31 door Hans De Ridder
 
- Ariën  -
Beheerder

- Ariën -

19/01/2018 17:15:26
Quote Anchor link
Quote:
Zo gebruik ik op het openbare gedeelte de cookies om te kijken
of iemand rechten heeft om te mogen reageren.

Ik neem aan dat je geen rechten in cookies opslaat. Zo kan iemand zijn rechten anders wel héél makkelijk opwaarderen, en misbruik maken.
 
Hans De Ridder

Hans De Ridder

19/01/2018 17:33:32
Quote Anchor link
Er worden 2 cookies opgeslagen.
1 met de gecodeerde unieke verwijzing.
De andere verandert bij het inloggen en bepaalde activiteiten, zoals wijzigingen, etc.
Die worden vergeleken met de opgeslagen waardes op de server.
Ze moeten beiden overeenkomen om een reactie te mogen geven via een form.
Lijkt me vrij veilig.
Maar daardoor kan ik dus nu ook niet een account laten inloggen terwijl er al een actief is.
En ik vind het ook niet zo'n probleem als er maar 1 account tegelijk ingelogd kan zijn.
Want wat wil je met inloggen meerdere browsers/plekken?...
Afzonderlijk van elkaar wijzigingen aanbrengen?

Ik kwam het alleen tegen toen ik het openbare gedeelte wilde checken op andere browsers.
Terwijl ik nog ingelogd was bij een andere browser, haha
 
Nick Vledder

Nick Vledder

19/01/2018 19:02:43
Quote Anchor link
Volgens mij is je doel, kijken of één account (user) in meerdere browsers de applicatie gebruikt prima te benaderen met het gebruik van session-cookies en een regelmatige ajax-ping naar de server. Is de user ingelogd en maakt de ping geen verbinding meer met de server, dan wordt de user uitgelogd op de server en via een JS commando tevens uitgelogd in de browser.

PS je kan ook voorkomen uiteraard dat voor een tweede keer wordt ingelogd door dezelfde user.
Gewijzigd op 19/01/2018 19:05:12 door Nick Vledder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 20:01:39
Quote Anchor link
Hans De Ridder op 19/01/2018 16:40:42:
Ik wil voor experimentje een waarde wijzigen van 0 naar 1
als de eerste account geopend is.
Pas als alle accounts afgesloten zijn gaat de waarde weer naar 0.

Wat is het nut hiervan? Op het moment dat iemand zich aanmeldt is deze toch gewoon ingelogd? Of dit nu in één of tien browsers is.

Als dit voor problemen zorgt met bijvoorbeeld de toegang tot een gedeelde resource (bijvoorbeeld het adminpaneel voor het wijzigen van een artikel; EDIT hierbij is het artikel dus de resource) dan moet je die resource vergrendelen / exclusief ontsluiten voor de eerste persoon die daar toegang toe krijgt, maar niet de accounts zelf.

Dus nogmaals, waarom is dit "hetzelfde account maximaal 1x tegelijkertijd actief" principe noodzakelijk? Ik denk dat je het probleem -wat dit ook moge zijn- beter op een andere manier (bijvoorbeeld op de voorgestelde, mits van toepassing) op kunt lossen.
Gewijzigd op 19/01/2018 20:08:49 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 21:31:50
Quote Anchor link
Ik hoop dat ik het goed uitleg, want is best ingewikkeld.
Het is een website voor mensen die wat met de artiestenwereld hebben.
Leden kunnen zich presenteren.
Dat gebeurt via youtubes, nieuwsbrief en andere documenten, flyers, enz.
Er is een registratie/inlogsysteem.
Naast het inloggen wordt hier alle openbaar te plaatsen info in de juiste mappen gezet.
Dit is in principe allemaal klaar.
Vanuit die mappen worden de verschillende categorieën opgebouwd in het openbare deel.

Het openbare gedeelte is voor iedereen toegankelijk.
Er is echter een optie "reageren" (dmv email eventueel met bestand).
Daar kunnen alleen leden gebruik van maken.
Deze optie is aanwezig voor elke categorieën.
Nu verwacht ik dat ook leden gewoon in het openbare gedeelte zullen snuffelen.
En om te voorkomen dat ze in moeten loggen als ze eens willen reageren,
heb ik 2 cookies die geset worden elke keer dat er ingelogd wordt.
En die worden ook op server bewaard.
Een unieke gecodeerde waarde en een variabele waarde.
In principe worden die 3 maanden bewaard.
Ook als je niet meer inlogt kun je dus reageren.
Met slechts 1 account actief gaat dat altijd goed.
Wanneer je echter op andere plek of andere browser inlogt,
dan verandert de variabele waarde van de cookie en die wordt ook opgeslagen.
Vanaf dat moment kloppen de gegevens niet meer om te reageren voor de 1e account-gebruiker.
Natuurlijk kan ik met sessies gaan werken in het openbare gedeelte voor de leden.
Maar die cookies gebruik ik toch al voor andere doeleinden ook.
Dus dacht ik deze ook toe te passen in openbare gedeelte.
Ik liep tegen het probleem aan, toen ik met ingelogd op Chrome,
de layout wilde bekijken op IE en Edge.Dan moest ik telkens uitloggen en weer inloggen.

De afweging die ik moet maken is of een account wel tegelijkertijd op meerdere plekken geopend
moet kunnen zijn. In het geval van mijn website en de gegevens zie ik het doel er niet zo van.
Misschien heb je wel gelijk Thomas om de pagina's waar je info kunt wijzigen en opsturen te vergrendelen.
Maar ik ken de muziekwereld een beetje. Het is al snel te moeilijk of teveel werk.
Vandaar dat met het inloggen ook alle opties bereikbaar zijn.
Maar wat zou het nut kunnen zijn om een account op meerdere plekken in te loggen?
Behalve dan voor de ontwerper, haha.
Sorry voor de lengte van het verhaal

Hier een voorbeeld van een categorie.
Via button wordt bekeken of je een reactie kunt geven.
Gekleurd: ja Grijs: nee, button is geblokkeerd.

https://www.pctraverse.nl/voorbeeld1.jpg
Gewijzigd op 19/01/2018 21:32:27 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 22:11:55
Quote Anchor link
Ik denk dat het probleem is dat je meerdere "systemen" hebt om verschillende typen gebruikers in te laten loggen (verschillende cookies?), althans zo klinkt het. Als in beginsel alle "gebruikers" (of dit nu geregistreerde bezoekers, muzikanten of beheerders zijn) hetzelfde zouden zijn, dan zou je het probleem wat je nu ondervindt niet hebben toch, want dan ben je gewoon ingelogd met de laatst ingelogde gebruiker, wat dat ook moge zijn.

En cookies voor authenticatie, dat klinkt niet erg bemoedigend. Cookies zouden wel kunnen dienen om iemand automatisch (onder water) opnieuw in te loggen indien een sessie verloopt ofzo, nadat met enige zekerheid is vastgesteld dat het om dezelfde gebruiker gaat, op grond van eerder vastgelegde gegevens. Maar dat is dus een stuk gebruikersgemak waarbij je ook weer een beetje veiligheid opoffert.

Ik denk dat de oplossing ligt in de richting van één manier van inloggen/authenticeren/bijhouden wie iemand is. Wat gebruikers vervolgens kunnen doen hangt af vant hun privileges / rechten die je aan een gebruiker koppelt. Let goed op dit onderscheid (wie iemand is <--> wat iemand mag doen).
 
Hans De Ridder

Hans De Ridder

19/01/2018 22:38:04
Quote Anchor link
Er is maar een account hoor. Die heeft de mogelijkheid om in alle categorieen berichten, flyers, youtubes, etc. te plaatsen.
Het klopt als je inlogt dat dit in principe ook kan. (Zolang ik die mogelijkheid aanhoud).
Dat werkt ook bij de openbare pagina's.
Het probleem zit hem dus dat bij inloggen de variabele cookie verandert.
En de als eerste ingelogde persoon niet meer kan reageren op de openbare pagina.
Ik zou dat kunnen oplossen door te checken (via ip) of lid online is.
Beetje zoals Nick aangeeft.
Dan kan ik switchen van 0 naar 1.
En de cookies onveranderd laten.
Dat verandert pas als lid niet meer actief is.
Maar denk dat het werken met session het meest eenvoudig is...
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....
 
Thomas van den Heuvel

Thomas van den Heuvel

19/01/2018 23:12:33
Quote Anchor link
Mja, maar het klinkt alsof je nog steeds verschillende cookies hebt voor verschillende gebruikers, terwijl dat in wezen eenzelfde cookie zou moeten zijn die precies één gebruiker identificeert. Dan heb je jouw hele probleem niet (EDIT: dit garandeert op zijn minst dat je per browser maar 1x bent ingelogd).

vb je hebt nu 3 cookies "henk", "piet" en "klaas", terwijl dat eigenlijk één cookie "user" zou moeten zijn ofzo, waaruit op een of andere (veilige!) manier moet blijken wie dat is.

Trouwens, hele ingewikkelde constructies voor beveiligingsmechanismen hangt een beetje naar security through obscurity, wat niet echt een goed ontwerpprincipe is - als hier sprake van is. Het is beter dat het berust op een simpel, transparant systeem waarbij iedereen kan zien dat het veilig is.
Gewijzigd op 19/01/2018 23:23:16 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

19/01/2018 23:48:15
Quote Anchor link
Er zijn per account maar 2 cookies. Een vaste waarde en een variabele.
Maar die variabele waarde verandert bij het inloggen. (Veiligheid)
En wordt opgeslagen in cookie en bewaart in database.
In het openbare gedeelte worden de cookies opgeroepen en vergeleken met de waardes in de database.
Dus als er wordt ingelogd vanaf verschillende plekken verandert telkens de waarde in cookie en in database.
Dan klopt de test alleen bij de laatst ingelogde! En anderen kunnen geen reactie meer geven.
Maar denk probleem te omzeilen door voor leden ook in het openbare gedeelte met sessie te werken.
Maar gelet op de hoeveelheid aan info en youtubes heb ik geen idee hoe lang leden vertoeven in het openbare gedeelte.
En in de verschillende categorieen.
Kun je een session ook ongezien verlengen als de tijd er bijna op zit?
 
- Ariën  -
Beheerder

- Ariën -

20/01/2018 00:42:34
Quote Anchor link
Als ik mij niet vergis vervalt een sessie standaard na ongeveer 30 inactieve minuten, dus er zit geen harde TTL aan vast.
Gewijzigd op 20/01/2018 00:43:31 door - Ariën -
 
Hans De Ridder

Hans De Ridder

20/01/2018 01:13:38
Quote Anchor link
Ik heb altijd met inloggen maar 1 pagina open. (header verandering).
Ook de pagina's waar je kunt invoeren of wijzigen.
Ik had eerder wat ingebouwd om na sluiten van pagina (dus niet ALLE tabs) automatisch via onbeforeunload
uit te loggen. en de session te beeindigen.
De linkjes om door te verwijzen stopten de werking zodat er tijdens het unloaden geen uitloggen volgde.
Maar moest ik ook weer maatregelen nemen om reloads en 'vorige pagina' voor uitloggen te behoeden.

Denk dat een gewone session start wel genoeg moet zijn.
En dat een lid moet inloggen als hij reactie wil geven.
Maar vind zonder inloggen wel gebruiksvriendelijker.
Ik kan toch bij bijv. wijziging van de pagina weer een nieuwe session starten.
Die loopt dan in principe ook weer 30 minuten.



Toevoeging op 20/01/2018 01:19:52:

Hier nog een scriptje van Stackoverflow die kijkt naar timeout.

On login:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();

An ajax call every few (eg 20) seconds:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
windows.setInterval(keepAliveCall, 20000);

Server side keepalive.php:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
session_start();
$_SESSION['last_action'] = time();


On every other action:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
session_start();
if ($_SESSION['last_action'] < time() - 30 /* be a little tolerant here */) {
  // destroy the session and quit
}
Gewijzigd op 20/01/2018 01:21:02 door Hans De Ridder
 
Obelix Idefix

Obelix Idefix

20/01/2018 11:11:41
Quote Anchor link
Hans De Ridder op 19/01/2018 17:33:32:
Er worden 2 cookies opgeslagen.

Die worden vergeleken met de opgeslagen waardes op de server.


Zit daar niet het probleem?
1) Kunnen verschillende browsers gebruik maken van dezelfde cookie?
Ik heb het nog niet meegemaakt dat als ik met Chrome ergens inlog, ik ook gelijktijdig met FF dan ben ingelogd.

2) De cookies zijn lokaal opgeslagen. Dat betekent volgens mij dat als iemand thuis is ingelogd en later ergens anders naar de website gaat (zonder thuis te hebben uitgelogd), niet beschikt over de cookies die thuis gezet zijn.
Dan kun je vergelijken met wat er op de server staat, maar dat gaat niet lukken.

Als ik het zo lees, is wat jij wilt niet mogelijk. Andere locatie / browser betekent dat je geen toegang hebt tot de cookies die (met een andere browser / op andere locatie) je eerst had.

Hans De Ridder op 19/01/2018 22:38:04:
En nog even denken of ik wel accounts dubbel geactiveerd wil hebben....

Beter lijkt me om dat te voorkomen. Iemand kan maar op 1 plaats zijn.
Wat als iemand de browser afsluit en niet netjes uitlogt. Die zou dan eeuwig ingelogd kunnen blijven?
Gewijzigd op 20/01/2018 11:13:59 door Obelix Idefix
 
Nick Vledder

Nick Vledder

20/01/2018 12:24:15
Quote Anchor link
Dat laatste is eenvoudig te ondervangen met Ajax Ping (vanuit browser). Na whatever seconden geen bericht = uitloggen op server.
 
Hans De Ridder

Hans De Ridder

20/01/2018 12:48:46
Quote Anchor link
Ik heb even gekeken wat er met inloggen allemaal wordt opgeslagen.
Daar zag ik wellicht wel de oplossing.
Ik gebruik 'Last_login'.
Als ik dat aanhoud en tel daarbij op de sessieduur, dan is de laatste met dezelfde account uitgelogd.
Die sessionduur moet dan wel de tijd zijn die bij inloggen is gegeven.
Dan wordt er uitgelogd en de sessie gestopt.
Er mag dus niet een nieuwe tijd worden ingesteld met een start session tussendoor.
Dat kan ik wel regelen waarschijnlijk met een cookie.
Maar weet (nog) niet of dit met php ook mogelijk is.
Even struinen op google.
Dan zorg ik er voor dat bij meerdere inlogs van een account geen nieuwe variabele cookie wordt geset.
Maar de cookie de inhoud krijgt van de al opgeslagen waarde uit de database.
Dan veranderen de cookies niet, zolang de laatste van dezelfde account nog ingelogd is.
Dat laatste had ik al getest en werkt prima.
Kreeg alleen de omschakeling niet voor elkaar.
Voor de slimmerikken die roepen: "maar als de laatste eerder uitlogt dan?".
De absolute tijd is niet zo relevant.
Dan is alleen de tijd dat de cookies niet veranderen wat (onnodig) langer.
En daardoor de veiligheid wat minder.
Maar is geen verband met wachtwoorden of usernames.
 
Thomas van den Heuvel

Thomas van den Heuvel

20/01/2018 15:38:07
Quote Anchor link
Heb de bovenstaande thread nogmaals gelezen en ik denk dat ik nu een beter beeld heb van wat er aan de hand is.

Mijn voorstel is als volgt: stap af van het gebruik van cookies, tenzij dit niet anders kan of een speciale reden heeft.

Ga gebruik maken van sessies. Als je functionaliteit wilt hebben die gebruikers ingelogd houdt / automatisch herinlogt: houd dit dan bij in een database. Maar houd het in eerste instantie simpel. Hiervoor zul je dan wel een cookie met een beperkte levensduur bij moeten houden waarin je bijvoorbeeld een hash opslaat. Deze hash + het IP van de gebruiker + een beperkte levensduur voor dit record tezamen zorgen ervoor dat iemand heringelogd wordt als aan de volgende condities is voldaan:
- de gebruiker is niet ingelogd
- er bestaat een niet-verlopen record met dezelfde hash als in het cookie en hetzelfde IP

Je hebt hiervoor een cookie nodig omdat dit de levensduur van een sessie (die om wat voor reden dan ook tekort is) moet overspannen. Volgens mij was hier al eens een keer een andere thread over geweest. De strekking (van mijn standpunt) daarin was ongeveer het volgende: probeer niet krampachtig een sessie in leven te houden, want deze timeout toch op den duur (om uiteenlopende redenen) maar zorg gewoon -als dit gewenst is- dat je een systeem hebt die je onderwater naadloos opnieuw inlogt, bijvoorbeeld op de hierboven beschreven wijze. Dit lijkt mij gewoon een veel simpelere constructie, waarbij de sessie dus een soort van automatische doorstart maakt.

Voor handelingen waar je geen speciale "rechten" voor nodig hebt: hiervoor zou je ook niets hoeven te doen. Wel zul je formulieren moeten beveiligen tegen spam, bijvoorbeeld met een token (misschien was dat het nut van het continu veranderende cookie?) die wordt meegestuurd en na afloop via een andere wijze wordt gecontroleerd. Doe je dit echter via cookies, dan zou je elke keer dezelfde cookiewaarde+formulierwaarde kunnen doorsturen wat het hele systeem een beetje om zeep helpt omdat de controle toegankelijk (en manipuleerbaar) is door de client zijde. Daarom gebruik je sessies - dit noem ik altijd "serverside cookies" - de controle bij sessies ligt aan de serverkant en niet bij de gebruiker. En dat is natuurlijk altijd een beter plan dan de controle bij de gebruiker te leggen want deze zou je eigenlijk nooit moeten vertrouwen.

Vraag ik mij nog steeds af wat het nut is van het continu veranderende cookie? Dit zou een soort van constructie met een nonce kunnen zijn, maar ik denk niet dat het allemaal zo geavanceerd is? Los daarvan, als dit als zodanig gebruikt wordt dan lijkt mij een sessie veel veiliger voor dit soort spul dan een cookie. Cookies zijn clientside en dus, zoals gezegd, manipuleerbaar.
Gewijzigd op 20/01/2018 15:39:14 door Thomas van den Heuvel
 
Hans De Ridder

Hans De Ridder

21/01/2018 14:16:39
Quote Anchor link
De waarde van de variabele cookie verandert, als een extra stukje veiligheid.
Mocht iemand eens aan vriend op vreemde PC de werking laten zien,
dan heeft die persoon de 2 cookies ook.
Maar hij kan er niet zoveel mee.
Er zal dan gevraagd worden om in te loggen.

Ik heb het nu (voorlopig) opgelost, zonder extra cookie.

Zolang er geen inlog is, is er niks aan de hand.
Lid kan zonder inlog alle openbare pagina's bezoeken en ook reageren als lid.
Op andere pc's of pc's kan dat ook.
Cookies wijzigen uitsluitend bij inloggen.

Zodra er ingelogd is verandert de waarde van de variabele cookie nog 1 keer.
Vervolgens worden er geen wijzigingen meer aangebracht in de variabele cookie.
Tot het moment dat de laatst ingelogde uit wordt gelogd.
Daarna wordt alles weer hersteld naar de oude situatie.

Bij het lid (zelfde account) die wil reageren op openbare pagina's betekent dit
dat men hooguit 1 keer dan moet inloggen om te kunnen reageren via die andere browser of PC.
Dit is mijn code (IPTC).
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$cookie_code=$_COOKIE['code'];
$cookie_user=$_COOKIE['user'];

if (isset($cookie_user, $cookie_code))
 {
$file=realpath($_SERVER['DOCUMENT_ROOT'])."foto/".$cookie_user.'.jpg';
$i=new iptc($file);
$r=$i->get(LAST_LOGIN);

$end_session=$r+3600;
$real_time=time();

if($real_time>$end_session)
{
echo $i->set(ACCOUNT_ACTIVE,'0');
$i->write();
}
else
{
echo $i->set(ACCOUNT_ACTIVE,'1');
$i->write();
}
}


Bij inlogscript:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
if ($account_active==0)
{
setcookie($cookie_name, $cookie_code, time() + (90 * 86400), "/"); // = 90 day
}
else
{
$i = new iptc($file);
$r = $i->get(LID_HASH);
$s = $i->get(COOKIE_CODE);
$cookie_code=$s;
setcookie($cookie_name, $s, time() + (90 * 86400), "/"); // = 90 day
}
Gewijzigd op 21/01/2018 14:58:05 door Hans De Ridder
 
Thomas van den Heuvel

Thomas van den Heuvel

22/01/2018 00:47:37
Quote Anchor link
Hoe ingewikkelder je het (voor jezelf) maakt, hoe belangrijker het in ieder geval is om code te annoteren (te voorzien van commentaar). Als ik dit over een week, maand of jaar nog eens bekijk, dan zou ik bij god niet weten wat deze code precies zou moeten doen.

Leg altijd in commentaar uit en vast wat de strekking / het effect van code is (of zou moeten zijn). Als je dat dan op een gegeven moment terugleest dan denk je misschien ook op een gegeven moment "waar was ik mee bezig" of "waarom heb ik ooit voor deze aanpak gekozen".

Maar ook voor debugging. Dit kan dan -in het gunstigste geval- heel snel duidelijk maken dat de code het voorgestelde plan mogelijk niet juist implementeert.
 
Ivo P

Ivo P

22/01/2018 09:25:28
Quote Anchor link
Wat ik begrijp:

Bij een account heb je 2 cookie-gegevens in je database staan, die ook bij de browser bekend zijn en waarmee je dus weet dat iemand ingelogd is (op die browser).

En dat geeft een probleem als iemand met een 2e client inlogt.

Wat nu als je het omdraait? Als je bij de 2 cookie gegevens noteert welk account daarbij hoort.

dus browser 1 heeft een cookie A en een cookie B en daarmee is de user Hans ingelogd (met Firefox voor mijn part).
Er is ook een record in je database met cookies X en Y en eveneens user Hans, maar nu op IE op een andere PC...
 

Pagina: 1 2 volgende »



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.