Password and cookie protecting a Blogger Blog

Here's what I wanted to do:

1. Password protect a blog
2. Create a cookie once the password was entered

Then users would only have to enter the password once.
Using code from here and here along with a bit of ingenuity, I came up with this code.
To use it:
1. Edit the Blogger template's HTML.
2. Past the code below following the <head> tag.
3. Change the variable 'motto' to the password or passphrase of your choice.
4. Change the redirect url from www.google.com to the one of your choice.
5. IMPORTANT: while testing this, keep the HTML editor open. If you screw things up you might lock yourself out.

<SCRIPT language='JavaScript'>
// this function gets the cookie, if it exists
// don"t use this, it"s weak and does not handle some cases
// correctly, this is just to maintain legacy information
function Get_Cookie( name ) {

var start = document.cookie.indexOf( name + "=" );
var len = start + name.length + 1;
if ( !start )
   {
   if ( name != document.cookie.substring( 0, name.length ) )
   {
     return null;
   }
}
if ( start == -1 ) return null;
var end = document.cookie.indexOf( ";", len );
if ( end == -1 ) end = document.cookie.length;
return unescape( document.cookie.substring( len, end ) );
}

function Set_Cookie( name, value, expires, path, domain, secure )
{
// set time, it"s in milliseconds
var today = new Date();
today.setTime( today.getTime() );

/*
if the expires variable is set, make the correct
expires time, the current script below will set
it for x number of days, to make it for hours,
delete * 24, for minutes, delete * 60 * 24
*/
if ( expires )
{
expires = expires * 1000 * 60 * 60 * 24;
}
var expires_date = new Date( today.getTime() + (expires) );

document.cookie = name + "=" +escape( value ) +
( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
( ( path ) ? ";path=" + path : "" ) +
( ( domain ) ? ";domain=" + domain : "" ) +
( ( secure ) ? ";secure" : "" );
}
// this deletes the cookie when called
function Delete_Cookie( name, path, domain ) {
if ( Get_Cookie( name ) ) document.cookie = name + "=" +
( ( path ) ? ";path=" + path : "") +
( ( domain ) ? ";domain=" + domain : "" ) +
";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}
// remember, these are the possible parameters for Set_Cookie:
// name, value, expires, path, domain, secure

var motto = "now is the time";
//For testing, uncomment the following line
//Delete_Cookie(motto, "/", "");
if ( !Get_Cookie( motto) ) {
   var password;
   password=prompt("Enter Password"," ");
   if (password==motto) {
       Set_Cookie( motto, "it works", "", "/", "", "" );
      }
     else { window.location="http://www.google.com"; }
}


</SCRIPT>


Comments

Popular Posts