WWPass JavaScript library (wwpass.js)

WWPass JavaScript library, wwpass.js, is used in WWPass authentications on Web resources.

It works in close cooperation with the browser plugin.

wwpass.js is responsible for interaction between WWPass hardware keys and WWPass core network.

Upon mutual authentication the transaction ticket is sent to and/or from WWPass network.

A link to the script may be included into the HTML page as follows:

<script src="//cdn.wwpass.com/packages/latest/wwpass.js"></script>

API#

The library API consists of two functions - wwpass_auth and wwpass_on_key_removed

wwpass_auth#

/*
* Starts authentication and ticket transfer.
*
*/
wwpass_auth({'ticket': aTicket, 'callback': aCallBack});

argument: a JSON object with the following fields

  • ticket: WWPass ticket, received from Service Provider (CCW scheme) or SP_name (CW scheme)
  • callback: function to be called upon completion of authentication. When called, this callback is given two parameters:
    • status: enum - final status of a transaction. WWPass_OK (code 200) means success. Other codes relate to particular problems. Enum names and corresponding numbers may be found in wwpass.js. The NOTE below explains why there is no need to process individual authentication errors in the page code.
    • ticket_or_reason: string - WWPass ticket if success, or text explaining the problem.

When authentication fails for any reason, the text of the reason is returned in the ticket_or_reason argument of the callback. Usually this text may be ignored: browser plugin shows a pop-up dialog containing this brief explanation automatically.

wwpass_on_key_removed#

wwpass_on_key_removed(callback);

Sets a function to be called when WWPass Key is removed. The function may be used to logout current user. No argument will be given to the callback function

Sample code#

The sample code below shows a CW-scheme authentication. The wwpass_auth is given an SP_name only, while full ticket is returned to the auth_cb callback.

It is assumed that on successful authentication user will be redirected to the index.php page. The new ticket is sent as a GET parameter.

It is also assumed that actual logout is done on logout.php page.

<button type="button" onclick="token_auth('example.com');">Login with WWPass</button>
...
<script type="text/javascript" src="//cdn.wwpass.com/packages/latest/wwpass.js"></script>
<script>
function auth_cb(status, ticket_or_reason) {
if (status == WWPass_OK) {
// authentication completed
window.location.href = 'index.php?ticket=' + encodeURIComponent(ticket_or_reason);
} else {
// authentication failed or canceled
// console.log('Error (' + status + '): ' + ticket_or_reason );
}
}
function token_auth(anSPname) {
wwpass_auth({'ticket': anSPname, 'callback': auth_cb});
}
function cb_key_removed() {
// key was removed
window.location.href='logout.php';
}
wwpass_on_key_removed(cb_key_removed);
</script>