[eluser]Jamie Rumbelow[/eluser]
I would Generate a token, a mixture of random letters and numbers and md5 hashed, store it into the database, pass it via a URL or something, and when the content is downloaded, remove it from the database.
Just a quick idea, try playing about with this.