07. november 2008 - 20:40Der er
11 kommentarer og 1 løsning
PHP: Speciel brugerlogin
Jeg har et system som er installeret på mine kunders website. Jeg overvejer en idé med at de skal kunne installere komponenter direkte fra systemet. Informationerne om komponenterne vil ligge i en mySQL-database på min eksterne server.
Da kunderne kun skal have adgang til at installere komponenter som de har købt, skal de på en eller anden måde logge ind på mit eksterne system, så mit system på en anden server kan afgøre, hvad de har rettigheder til at installere. Normalt laver man jo brugersystemer ved at logge ind i mySQL-databasen og tjekke brugenavn og password i en tabel med brugere. Dette er dog ikke så hensigtsmæssigt i dette tilfælde, da jeg jo helst ikke vil have, at der i kildekoden på systemet skal ligge brugernavn/password til login på min eksterne server.
Findes der en måde, måske med noget HTTP Request eller SOAP, hvor man kan lave et lag mellem PHP og mySQL? Jeg forestille mig, at man kunne lave et request fra systemet med kundens brugernavn/password til den eksterne server. Den eksterne server tjekker i dens database om brugerne eksisterer - eksisterer de, får systemet en accept og en XML-fil med de informationer systemet skal bruge for at kunne installere komponenterne - f.eks. et link til en ZIP-fil.
En anden mulighed var også, at systemet forsøgte at logge direkte ind i mySQL-databasen på den eksterne server fra systemet selv - med brugernavn og password som brugeren indtaster. Dermed er kravet bare, at der oprettes mySQL-brugere på den eksterne serveren til alle kunderne. Er det den rigtige måde at gøre det på?
Jeg håber nogen kan komme med lidt tips/tricks på hvordan man normalt laver noget som dette?
Man er ikke for knøv hvis man lader en database være åben til omverdenen, med password flydende rundt omkring. Det gør man ikke. Og det har du opdaget.
Du har også opdaget hvad man skal gøre i stedet for, og du er ikke den eneste: det hedder en webservice (med login)
Java? Jeg har ikke noget liggende. Google er din ven, siger de. Det vigtigste for dig bør være at eksperimentere med webservices, for at se om det giver mening i dit projekt.
Ja, skal man ikke have programmeret en server som skal svare på de SOAP-kald som klienterne laver? Lidt som at lave en webserver der modtaget et request og sender noget tilbage igen? Det har jeg tidligere lavet, men kan jo nok ikke bruges til noget i denne sammenhæng, da det jo er en helt speciel syntakt der skal gælde for HTTP-requests. Men tænkte at der var en lignende syntaks for et SOAP kald..nå, men det må jeg prøve at finde noget om på google.
En web-"service" er bare et PHP-script, der afleverer noget XML i stedet for HTML. Det skal de der SOAP-metoder nok klare for dig. Du finder bare et eksempel at arbejde videre med, ik'?
Ingen point til mig, tak. Generelt lader man sit værktøj om at lave en WSDL-fil. Jeg har et par gange skrevet en selv. Kedeligt, og måske lidt sværere end at udfylde sin selvangivelse.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.