That's much simpler than you think.
First, create a user profile and a local user that is linked to the profile. The below assumes a username of 'username' and a password of 'password'.
Then make the following login.html:
<html>
<head>
<meta http-equiv="refresh" content="0; url=login?username=username&password=password">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</head>
<body>
</body>
</html>
That login.html is loaded for unauthorized users and usually has the login form, the above instead after 0 seconds causes an automatic redirect (HTTP code 302) to the login servlet of the Hotspot, passing on the correct user credentials and effectively logging the user in.
To cover all possible redirect conditions, create the following redirect.html and logout.html (they both get the same HTML) to in turn redirect to the above login.html:
<html>
<head>
<meta http-equiv="refresh" content="0; url=login.html">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</head>
<body>
</body>
</html>
After a successful login, alogin.html is loaded for the user. The below assumes that the page you want to show after login resides on an external server. If you want to host it on the router itself, just replace it with the HTML for the final landing screen.
<html>
<head>
<meta http-equiv="refresh" content="0; url=http://my.external.server.com/landingpage.html">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="-1">
</head>
<body>
</body>
</html>