# The University of Sydney-Course & Unit of Study Portal
**Source**: https://cusp.sydney.edu.au/users/login-page/
**Parent**: https://cusp.sydney.edu.au/
### Login Page
\
- [UniKey Login](#unikeyLogin)
- [External Staff](#externalLogin)
## UniKey Login
Click to login with your existing UniKey account.
***Note:** Your UniKey account needs to be registered for CUSP access first. Please contact a CUSP system admin to arrange for this.*
Enter your CUSP username and password below:
| | |
| --- | --- |
| Username: | |
| Password: | |
| | Login |
***Note:** UniKey login is the preferred access method.*
var lp = new Object();
$(document).ready(function() {
lp.tabs = $('#login-tabs').tabs({
selected:0 });
document.getElementById('lp\_username').focus();
});
lp.captureEvt = function(evt){
evt = (evt) ? evt : event;
var charCode = (evt.which) ? evt.which : evt.keyCode;
if(charCode==13) lp.login(); //user pressed enter
}
/\*\*
\* Login works as follows:
\* 1. Server has a sha512 hash of your password stored in DB.
\* 2. When the login page is requested, server generates a random salt and sends to client, storing in session.
\* 3. When user clicks login, this function first hashes the password, then hashes the password hash with the salt and sends to server.
\* 4. Server retrieves password hash from DB, concatenates with salt from session, and hashes together to compare against what was received.
\* 5. The salt is removed from the session on successful login.
\*/
lp.login = function() {
document.getElementById('login-res').innerHTML = '';
var username = document.getElementById('lp\_username').value;
var password = document.getElementById('lp\_password').value;
var salt = document.getElementById('lp\_salt').value; //salt will be unique for each login request
var saltHash = hex\_sha512(hex\_sha512(password)+salt);
CUSP.ajaxPost(
CUSP.svcUrl("UserSvc", "loginExternal"),
null,
null,
function(o) { //callback
var xml = CUSP.res2array(o);
if(xml.response.success) {
CUSP.yuiOk();
window.location = "/my-home";
}
else document.getElementById('login-res').innerHTML = xml.response.prompt;
},
{ //POST parameters
loginUsername: username,
loginSaltHash: saltHash}
);
}