Sessie niet opgeslagen op subdomein

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • Sessie niet opgeslagen op subdomein

      Hallo allemaal,

      Ik heb een probleem bij een van mijn projecten bij het inloggen.
      Ik werk met een PHP Api (die draait op api.domain.com) en een AngularJs front end applicatie (domain.com).

      Wanneer ik probeer in te loggen, doe ik met Angular een request naar mijn Api. Ik stuur dus vanuit mijn applicatie (domain.com) een request naar mijn Api (api.domain.com). Wanneer de inloggegevens juist zijn, moet er een sessie worden gestart. Dit gebeurt alleen niet..

      Wat ik heb geprobeerd:
      Toegevoegd in Api:

      PHP Source Code

      1. session_set_cookie_params(86400, '/tmp', '.domain.com', true);
      2. session_start();
      3. header("Access-Control-Allow-Origin: https://domain.com");
      Heeft iemand misschien ideeën waar het aan zou kunnen liggen?
      Eigenaar Blom Development
      Web Developer
      HTML • CSS • PHP • SQL • JavaScript • jQuery • AngularJS • Node.JS • Java • Android • C# • .NET • Swift • PhoneGap • Cordova • Ionic
    • Ja, beide domeinnamen zijn secure (api.domain.com & domain.com).
      Client side gebeurt er niks met de sessie, maar omdat er vanuit client side een request naar de Api wordt verstuurd, dacht ik dat het belangrijk was om te vermelden.
      Eigenaar Blom Development
      Web Developer
      HTML • CSS • PHP • SQL • JavaScript • jQuery • AngularJS • Node.JS • Java • Android • C# • .NET • Swift • PhoneGap • Cordova • Ionic
    • Client side wordt er gecontroleerd of je nog ingelogd bent. Nadat ik ben ingelogd, navigeer ik naar een andere pagina. Daar krijg ik geen session als resultaat.

      Voor debug heb ik de session array als resultaat terug gestuurd bij het inloggen en het ophalen van je persoonlijke profiel. Bij het inloggen krijg ik de sessie terug (opgeslagen), haal ik vervolgens mijn profiel op, dan is de sessie weg.
      Eigenaar Blom Development
      Web Developer
      HTML • CSS • PHP • SQL • JavaScript • jQuery • AngularJS • Node.JS • Java • Android • C# • .NET • Swift • PhoneGap • Cordova • Ionic
    • Waarom geen sessie systeem aan de hand van een key/Database. Bijvoorbeeld naar een halfuur geen activiteit de sessie eruit gooien. Zoiets als:

      table_sessions:
      [sessie_id] - Unieke id
      [sessie_user_id] - De gebruikers id
      [sessie_key] - De unieke sessie key
      [sessie_time_update] - De laatste activiteit van de user.
      [sessie_time_start] - Wanneer de sessie begonnen is.

      Ongeveer zo, en aan de hand van sessie_time_update zou je dan de user na een halfuur eruit kunnen gooien.

      Wat betreft sessies op backend van de client weet ik niet of dit zal werken met $_SESSION, omdat backend niet open blijft en dus de sessie vervalt. (Cookies zou misschien kunnen, geen ervaringen mee)
      PHP, JAVA, C#, JAVASCRIPT, HTML(5), CSS(3) developer.
      Vragen?! Stuur me gerust een prive bericht :) !
    • ThomasBlom wrote:

      Nadat ik ben ingelogd, navigeer ik naar een andere pagina. Daar krijg ik geen session als resultaat.
      Bevindt deze andere pagina zich in het pad /tmp, oftewel, navigeer je naar iets van de vorm http(s)://domain.com/tmp? Want dat (die, en onderliggende directories) is het geldigheidsdomein wat je instelt voor je sessie-cookie middels session_set_cookie_params(). Daarbuiten "bestaat" deze niet.

      Je zou altijd je cookies kunnen inspecteren via je browser. Grote kans dat daar dan gewoon een sessie-cookie tussenstaat met path "/tmp".