Lösenordsskydda specifika URL:er (Wordpress/PHP)
Jag har en Wordpress-sida med en custom post type som heter "downloads". Här kan man skapa en nedladdning som då har ett antal fält såsom titel, beskrivning, fil som ska gälla för nedladdningen, samt en krysslåda som avgör om filen ska vara lösenordsskyddad eller ej. Filen ligger då hostad under wp-content/uploads/X/X/<FILENS NAMN>.
I fallet att en besökare i sådana fall klickar på en lösenordsskyddad länk, så vill jag att besökaren hänvisas till en sida där man måste skriva ett lösenord för att få tillgång till filen. Detta skulle då vara frikopplat från Wordpress användare, så det är ett och samma lösenord som gäller för alla.
När man skrivit rätt lösenord så laddas filen ner och man hänvisas tillbaka till sidan där man klickade på länken initialt.
Jag försöker få ett hum om hur man gör detta på bästa sätt. Jag har en slags idé i mitt huvud och ville bara kolla med någon som är mer kunnig om detta låter vettigt eller ej:
• Ha någon form av nyckel som används för att kryptera/dekryptera
• Om en länk är lösenordsskyddad, skapa en URL som innehåller filens slutgiltiga URL fast krypterad, exempelvis: www.domän.com/password/<KRYPTERAD URL>?success=<URL FÖR SIDAN SOM JAG KLICKADE PÅ LÄNKEN>
• När användare klickar på länken, skicka vidare till URL ovan.
• Här möts användaren av ett formulär med ett fält för lösenord.
• När användaren skriver rätt lösenord i formuläret, skicka vidare till funktion som dekrypterar URL:en med hjälp av nyckel, skickar vidare användaren till URL:en för nedladdning, så att filen börjar laddas ner i webbläsaren, och skickar i samma ögonblick tillbaka användaren till ursprungliga URL:en man var på när man klickade på länken, med hjälp av "success"-parametern i URL:en.
• Om användaren skriver fel lösenord, visa error under fältet som förklarar att lösenordet är fel, eventuellt hänvisa till admin för förfrågan om lösenordet i fråga.
Låter detta som en vettig lösning eller hur skulle ni föreslå att man gör detta på bästa sätt?