ntnu.blackboard.com
Open in
urlscan Pro
3.65.240.234
Public Scan
Submitted URL: http://ntnu.blackboard.com/
Effective URL: https://ntnu.blackboard.com/
Submission: On April 10 via api from US — Scanned from DE
Effective URL: https://ntnu.blackboard.com/
Submission: On April 10 via api from US — Scanned from DE
Form analysis
2 forms found in the DOMName: locale_picker — POST /webapps/portal/execute/changeLocale
<form action="/webapps/portal/execute/changeLocale" method="post" name="locale_picker" target="_top">
<script>
function loadLocale(code) {
document.locale_picker.locale.value = code;
document.locale_picker.submit();
}
FastInit.addOnLoad(function() {
function displayLanguages() {
var $langButton = $('lang-select-button');
var $langMenu = $('lang-list');
function showMenu() {
$langMenu.removeClassName('hide');
$langMenu.setAttribute('aria-hidden', 'false');
$langMenu.setAttribute('aria-expanded', 'true');
$langMenu.setAttribute('aria-pressed', 'true');
$langButton.setAttribute('aria-expanded', 'true');
$langButton.addClassName('expanded');
$langMenu.firstDescendant().firstDescendant().focus();
}
function hideMenu() {
$langMenu.addClassName('hide');
$langMenu.setAttribute('aria-hidden', 'true');
$langMenu.setAttribute('aria-expanded', 'false');
$langMenu.setAttribute('aria-pressed', 'false');
$langButton.setAttribute('aria-expanded', 'false');
$langButton.removeClassName('expanded');
}
//toggle logic
if ($langMenu.hasClassName('hide')) {
showMenu();
} else {
hideMenu();
}
//Press ESC hides the menu
$(document).on('keydown', function(e) {
if (e.which == 27) {
hideMenu();
}
});
$(document).on('click', function(e) {
hideMenu();
});
}
// reveal available languages on click
$('lang-select-button').on('click', 'button', function(e) {
displayLanguages();
e.stopPropagation();
});
});
</script>
<input type="hidden" name="target" value="/webapps/login/?action=login">
<button type="button" class="icon-languages" id="lang-select-button" aria-haspopup="true" aria-expanded="false" aria-controls="lang-list" aria-owns="lang-list" aria-pressed="false" aria-label="Velg språk Gjeldende språk Bokmål (Norge)"></button>
<ul id="lang-list" class="hide" aria-hidden="true" aria-expanded="false" role="menu">
<li aria-label="Bokmål (Norge)"><a href="javascript:loadLocale('nb_NO');" title="Bokmål (Norge)" lang="nb_NO">Bokmål (Norge)</a></li>
<li aria-label="English (United States)"><a href="javascript:loadLocale('en_US');" title="English (United States)" lang="en_US">English (United States)</a></li>
<li aria-label="Nynorsk (Norge)"><a href="javascript:loadLocale('nn_NO');" title="Nynorsk (Norge)" lang="nn_NO">Nynorsk (Norge)</a></li>
</ul>
<input type="hidden" name="locale">
</form>
Name: login — POST /webapps/login/
<form action="/webapps/login/" onsubmit="return validate_form( this, false, true );" method="POST" name="login">
<script type="text/javascript">
function login_openForgotPassword(url) {
var passwordWin = window.open(url, 'forgotPasswordWindow', 'menubar=1,resizable=1,scrollbars=1,status=1,width=850,height=480');
passwordWin.focus();
}
FastInit.addOnLoad(function() {
if (typeof ClientCache !== 'undefined') {
ClientCache.clear();
}
var startingJSessionCookie = getCookie("JSESSIONID");
var guestLocaleCookie = getCookie("guest.session.locale");
deleteCookie("JSESSIONID", "/@@", null, true);
deleteCookie("JSESSIONID", "/courses", null, true);
deleteCookie("JSESSIONID", "/sessions", null, true);
deleteCookie("JSESSIONID", "/systemdata", null, true);
deleteCookie("JSESSIONID", "/images", null, true);
deleteCookie("JSESSIONID", "/images-ltr", null, true);
deleteCookie("JSESSIONID", "/images-rtl", null, true);
deleteCookie("JSESSIONID", "/reportbranding", null, true);
deleteCookie("JSESSIONID", "/reports", null, true);
deleteCookie("JSESSIONID", "/modules", null, true);
deleteCookie("JSESSIONID", "/groupjs", null, true);
deleteCookie("JSESSIONID", "/branding", null, true);
deleteCookie("JSESSIONID", "/queue_tasks", null, true);
deleteCookie("JSESSIONID", "/sponsors", null, true);
deleteCookie("JSESSIONID", "/course_image_main_images", null, true);
deleteCookie("JSESSIONID", "/course_image_2_images", null, true);
deleteCookie("JSESSIONID", "/course_image_nav_images", null, true);
deleteCookie("JSESSIONID", "/org_image_main_images", null, true);
deleteCookie("JSESSIONID", "/org_image_2_images", null, true);
deleteCookie("JSESSIONID", "/org_image_nav_images", null, true);
deleteCookie("JSESSIONID", "/avatar", null, true);
deleteCookie("JSESSIONID", "/bannerthumbnail", null, true);
deleteCookie("JSESSIONID", "/deployment", null, true);
deleteCookie("JSESSIONID", "/content_area", null, true);
deleteCookie("JSESSIONID", "/portfolio", null, true);
deleteCookie("JSESSIONID", "/evidence_area", null, true);
deleteCookie("JSESSIONID", "/public", null, true);
deleteCookie("JSESSIONID", "/pronunciation_audio", null, true);
deleteCookie("JSESSIONID", "", null, true);
deleteCookie("JSESSIONID", "/webapps/login", null, true);
deleteCookie("JSESSIONID", "/webapps/taglibs", null, true);
deleteCookie("JSESSIONID", "/webapps/ws", null, true);
deleteCookie("JSESSIONID", "/webapps/wysiwyg", null, true);
deleteCookie("JSESSIONID", "/bbcswebdav", null, true);
deleteCookie("JSESSIONID", "/webapps/cmsmain", null, true);
deleteCookie("JSESSIONID", "/webapps/xythoswfs", null, true);
deleteCookie("JSESSIONID", "/admin", null, true);
deleteCookie("JSESSIONID", "/colorpalettes", null, true);
deleteCookie("JSESSIONID", "/coursethemes", null, true);
deleteCookie("JSESSIONID", "/common", null, true);
deleteCookie("JSESSIONID", "/fonts", null, true);
deleteCookie("JSESSIONID", "/javascript", null, true);
deleteCookie("JSESSIONID", "/lib", null, true);
deleteCookie("JSESSIONID", "/login", null, true);
deleteCookie("JSESSIONID", "/themes", null, true);
deleteCookie("JSESSIONID", "/ui", null, true);
deleteCookie("JSESSIONID", "/ui-ultra", null, true);
deleteCookie("JSESSIONID", "/learn/api", null, true);
deleteCookie("JSESSIONID", "/webapps/software-updates", null, true);
deleteCookie("JSESSIONID", "/webapps/dataIntegration", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-gate-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/ai", null, true);
deleteCookie("JSESSIONID", "/webapps/goal", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-social-learning-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/api-gateway", null, true);
deleteCookie("JSESSIONID", "/webapps/rubric", null, true);
deleteCookie("JSESSIONID", "/webapps/streamViewer", null, true);
deleteCookie("JSESSIONID", "/webapps/submission-services", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-content-model-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-group-mgmt-LEARN", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-ultra-conversion", null, true);
deleteCookie("JSESSIONID", "/webapps/gradebook", null, true);
deleteCookie("JSESSIONID", "/webapps/assessment", null, true);
deleteCookie("JSESSIONID", "/webapps/videointegration", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce-ephox-hyperlinking", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce-ephox-spelling", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-common-styles-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-filter-whitelist-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-filter-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/vtbe-tinymce", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcms", null, true);
deleteCookie("JSESSIONID", "/webapps/inline-grading", null, true);
deleteCookie("JSESSIONID", "/webapps/taskprogress", null, true);
deleteCookie("JSESSIONID", "/webapps/spreview", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-xss-input-validation-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/portfolio", null, true);
deleteCookie("JSESSIONID", "/webapps/blogs-journals", null, true);
deleteCookie("JSESSIONID", "/webapps/foundations-connector", null, true);
deleteCookie("JSESSIONID", "/webapps/partner-cloud", null, true);
deleteCookie("JSESSIONID", "/webapps/date-management", null, true);
deleteCookie("JSESSIONID", "/webapps/discussionboard", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-selfpeer-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/assignment", null, true);
deleteCookie("JSESSIONID", "/webapps/allyintegration", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mygrades-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/operational-data-store", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-wiki-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/retention", null, true);
deleteCookie("JSESSIONID", "/webapps/consulting-central", null, true);
deleteCookie("JSESSIONID", "/webapps/caliper", null, true);
deleteCookie("JSESSIONID", "/webapps/school-data-sync", null, true);
deleteCookie("JSESSIONID", "/webapps/ee-Eesypluginv2-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/ppto-PanoptoCourseTool-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-1027954530152-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-auth-provider-cas-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-auth-provider-ldap-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/insight-report", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-urkund_anti_plagiarism-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-McGrawHill-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-ss-xml-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/privacy-disclosure", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-lis-final-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/mdb-sa-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bbtextbook", null, true);
deleteCookie("JSESSIONID", "/auth-saml", null, true);
deleteCookie("JSESSIONID", "/webapps/notes", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcxcourseconversion", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-financial-aid-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bbcxcommoncartridge", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-alerts-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-nautilus-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/collab-ultra", null, true);
deleteCookie("JSESSIONID", "/webapps/achievements", null, true);
deleteCookie("JSESSIONID", "/webapps/attendance", null, true);
deleteCookie("JSESSIONID", "/webapps/oslt-jshack-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/calendar", null, true);
deleteCookie("JSESSIONID", "/webapps/cmsadmin", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-goal-performance-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/blackboard", null, true);
deleteCookie("JSESSIONID", "/webapps/item-analysis", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-youtube-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/scor-scormengine-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-SISFrameworkController-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/building-block-conversion", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-log-file-downloader-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/portal", null, true);
deleteCookie("JSESSIONID", "/webapps/Bb-mobile-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/telemetry", null, true);
deleteCookie("JSESSIONID", "/webapps/ultraui", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-flickr-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bbgs-GradeJourney-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-telephony-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-mashups-slideshare-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/foundations-token", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-theme-diff-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/feature-flags", null, true);
deleteCookie("JSESSIONID", "/webapps/auth-provider-foundations", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-flatfile-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/asset-processor", null, true);
deleteCookie("JSESSIONID", "/webapps/enterpriseSurvey", null, true);
deleteCookie("JSESSIONID", "/webapps/cloudstorageintegration", null, true);
deleteCookie("JSESSIONID", "/webapps/bb-data-integration-ims-xml-BB5def77a38a2f7", null, true);
deleteCookie("JSESSIONID", "/webapps/plugins", null, true);
deleteCookie("JSESSIONID", "/webapps/searchwidgets", null, true);
if (guestLocaleCookie != null) {
setCookie("guest.session.locale", guestLocaleCookie);
}
setCookie("JSESSIONID", startingJSessionCookie);
if (typeof aptrinsic !== 'undefined') {
window.aptrinsic('reset');
}
if (typeof pendo !== 'undefined') {
pendo.clearSession();
}
});
</script>
<div id="loginFormFields" class="clearfix">
<ul id="loginFormList" class="clearfix">
<li class="clearfix">
<label for="user_id">Brukernavn</label>
<input type="text" name="user_id" id="user_id" size="25" maxlength="50" autocomplete="off" aria-labelledby="alternativeLoginNTNU username">
</li>
<li class="clearfix">
<label for="password">Passord</label>
<input size="25" name="password" id="password" type="password" autocomplete="off" aria-labelledby="alternativeLoginNTNU password">
</li>
<li class="clearfix">
<input id="entry-login" type="submit" value="Logg på" name="login" class="button expand inverse outline">
</li>
</ul>
<div class="login-form-footer row collapse">
<div class="stay-signed-in small-6 columns text-left">
</div>
<div class="small-6 columns text-right">
<a href="https://bas.ntnu.no/userclient/" onclick="login_openForgotPassword('https://bas.ntnu.no/userclient/');return false;">Har du glemt passordet?</a>
</div>
</div>
</div>
<script src="/javascript/qrcodejs/qrcode.min.js"></script>
<dialog id="mfa-registration" role="dialog" class="mfa-modal-container" aria-modal="true" style="display: none;">
<div class="mfa-registration-modal mfa-modal" aria-labelledby="mfa-registration-title" aria-describedby="mfa-registration-description">
<div class="mfa-modal-title">
<h1 id="mfa-registration-title">Flerfaktorautentisering</h1>
</div>
<div class="registration-modal-body">
<div id="mfa-registration-description" class="registration-modal-body-description">
<div>
<span>Trinn 1</span>
<p>Last ned og installer en autentiseringsapp (f.eks. <strong>Microsoft Authenticator, Google Authenticator eller Authy</strong>) på telefonen.</p>
</div>
<div>
<span>Trinn 2</span>
<p class="web-content">Åpne autentiseringsappen og skann bildet nedenfor med telefonkameraet. Eventuelt kan du kopiere nøkkelen.</p>
<p class="mobile-content">Åpne autentiseringsappen og kopier nøkkelen nedenfor.</p>
</div>
</div>
<div class="registration-qr-code">
<div class="qr-code-img" id="qrcode" tabindex="-1" aria-hidden="true" title="${mfaQRUri}"><canvas width="120" height="120" style="display: none;"></canvas><img
src="data:image/png;base64,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"
style="display: block;"></div>
<input type="hidden" id="qr-uri" tabindex="-1" aria-hidden="true" value="${mfaQRUri}">
<div class="secret-key-container">
<p id="secretkey">${mf aSec retK ey}</p>
<div class="copy-key">
<a id="copy-secret-key" tabindex="0" onclick="copyTextToClipboard();">Kopier nøkkelen</a>
<div id="copy-feedback" class="copyfeedback">
<span style="padding: 4px">-</span>
<div class="copy-success">
<span role="alert" aria-live="assertive" style="color: #007D2C;font-size: 12px;line-height: 18px;">Nøkkelen er kopiert</span>
<img class="check-icon" src="/images/ci/icons/complete.svg" aria-hidden="true">
</div>
</div>
</div>
</div>
</div>
<div class="next-progress-info">
<span>Trinn 3</span>
<p id="next-progress-description">Trykk på Neste for å legge inn koden og knytte den til kontoen din</p>
</div>
</div>
<div class="modal-footer">
<button id="reg-cancel-button" class="modal-button button-cancel">Avbryt</button>
<button id="reg-next-button" class="modal-button button-next">Neste</button>
</div>
</div>
</dialog>
<script type="text/javascript">
// Initialize QRCode with the provided URI and set display parameters
var qrcode = new QRCode(document.getElementById("qrcode"), {
text: document.getElementById("qr-uri").value,
width: 120,
height: 120,
colorDark: "#000000",
colorLight: "#ffffff",
correctLevel: QRCode.CorrectLevel.H
});
// Event listener for the 'Next' button click in the registration dialog
const nextButton = document.getElementById('reg-next-button');
nextButton.addEventListener('click', function(event) {
event.preventDefault();
// Hide registration dialog and show verification dialog
const registrationDialog = document.getElementById('mfa-registration');
const verificationDialog = document.getElementById('mfa-totp-verification');
const inputField = document.getElementById('totp-verification-input');
registrationDialog.style.display = 'none';
verificationDialog.style.display = 'flex';
inputField.focus();
// Update hidden input values to manage UI states
document.getElementById('showMFARegistration').value = 'false';
document.getElementById('showMFAVerification').value = 'true';
document.getElementById('showMFASuccessFul').value = 'false';
});
// Event listener for the 'Cancel' button click in the registration dialog
const regCancelButton = document.getElementById('reg-cancel-button');
regCancelButton.addEventListener('click', function(event) {
event.preventDefault();
// Navigate to login page.
window.location.href = '/webapps/login/?action=logout';
});
// Function to add a space after every 4 characters in the secret key
function formatSecretKey() {
const secretKeyElement = document.getElementById('secretkey');
const secretKeyText = secretKeyElement.textContent;
const formattedSecretKey = secretKeyText.replace(/(.{4})/g, '$1 ');
secretKeyElement.textContent = formattedSecretKey;
}
// Call the function to format the displayed secret key
formatSecretKey();
// Function to copy text to clipboard
function copyTextToClipboard(text) {
const textArea = document.createElement('textarea');
textArea.value = text;
document.body.appendChild(textArea);
textArea.select();
const copykey = document.execCommand('copy');
document.body.removeChild(textArea);
return copykey;
}
// Event listener for the 'Copy' button click to copy the secret key to clipboard
function handleCopykeyEvent() {
event.preventDefault();
const secretKeyElement = document.getElementById('secretkey');
const secretKeyText = secretKeyElement.textContent;
const unformattedSecretKey = secretKeyText.replace(/\s+/g, '');
copyTextToClipboard(unformattedSecretKey);
const copyFeedback = document.getElementById('copy-feedback');
copyFeedback.style.display = 'flex';
setTimeout(function() {
copyFeedback.style.display = 'none';
}, 10000);
document.getElementById('copy-secret-key').focus();
}
document.getElementById('copy-secret-key').addEventListener('click', handleCopykeyEvent);
document.getElementById('copy-secret-key').addEventListener('keydown', function(event) {
if (event.key === 'Enter' || event.code === 'Space') {
handleCopykeyEvent(event);
}
});
</script>
<dialog id="mfa-totp-verification" class="mfa-modal-container" style="display: none;">
<div class="mfa-verification-modal mfa-modal" role="dialog" aria-modal="true" aria-labelledby="mfa-verification-title">
<div class="mfa-modal-title">
<h1 id="mfa-verification-title">Flerfaktorautentisering</h1>
</div>
<div class="verification-modal-body">
<div class="verification-modal-body-description">
<label for="totp-verification-input" class="custom-label">Skriv inn koden</label>
<p id="mfa-verification-description">Skriv inn den 6-sifrede midlertidige koden som er generert av autentiseringsappen</p>
</div>
<div id="totp-verification-input-container" class="verification-input">
<input name="secondaryAuthToken" id="totp-verification-input" type="text" onkeypress="return validateTOTP(event)" maxlength="6" tabindex="0" placeholder="000000" autocomplete="off" aria-describedby="mfa-verification-description"
aria-invalid="false">
</div>
<div id="loading-spinner" class="centered">
<div class="loader-outer">
<div id="loader">
<div class="loader-inner"></div>
</div>
</div>
</div>
</div>
<div class="modal-footer">
<button id="totp-back-button2" class="modal-button button-back">Tilbake</button>
<button id="totp-submit-button" class="modal-button button-submit" type="submit" onclick="showLoadingSpinner();" disabled="">Send</button>
</div>
</div>
</dialog>
<script>
window.onload = function() {
const totpInput = document.getElementById("totp-verification-input");
if (totpInput) {
totpInput.focus();
}
}
function validateTOTP(event) {
const inputField = document.getElementById('totp-verification-input');
const key = event.key;
if ((key >= '0' && key <= '9') || key === 'Backspace' || (event.metaKey && key === 'a')) // for safari browser compatablity
{
return true; // Allow
} else if (key === 'Enter') {
if (inputField.value.length !== 6) {
event.preventDefault();
} else {
showLoadingSpinner();
return true;
}
} else {
return false; // Block
}
}
const inputField = document.getElementById('totp-verification-input');
// To enable/disable the submit button based on input value.
inputField.addEventListener('keyup', function() {
const submitButton = document.getElementById('totp-submit-button');
submitButton.disabled = !(inputField.value.length === 6);
});
inputField.addEventListener('input', function() {
const errorMessageContainer = document.getElementById('totp-error');
if (errorMessageContainer) {
errorMessageContainer.style.display = 'none'; // Hide the error message on focus
}
});
function showLoadingSpinner() {
const spinner = document.getElementById('loading-spinner');
const inputField = document.getElementById('totp-verification-input');
const inputContainer = document.getElementById('totp-verification-input-container');
const errorMessage = document.getElementById('errorMessage');
const backbutton1 = document.getElementById('totp-back-button1');
const backbutton2 = document.getElementById('totp-back-button2');
if (inputField.value.length === 6 && !errorMessage) {
inputContainer.style.display = 'none';
spinner.style.display = "flex";
if (backbutton1) {
backbutton1.disabled = true;
}
if (backbutton2) {
backbutton2.disabled = true;
}
} else if (errorMessage) {
spinner.style.display = 'none';
inputContainer.style.display = 'flex';
inputField.setAttribute('aria-invalid', 'true');
}
}
function clearTOTPCode() {
document.getElementById('totp-verification-input').value = '';
}
const totpButton2 = document.getElementById('totp-back-button2');
if (totpButton2) {
totpButton2.addEventListener('click', function(event) {
event.preventDefault();
clearTOTPCode();
window.location.href = '/webapps/login/?action=logout';
});
}
</script>
<dialog id="mfa-registration-success" role="dialog" class="mfa-modal-container" aria-modal="true" style="display: none;">
<div class="success-modal mfa-modal" tabindex="0" aria-labelledby="mfa-success-title" aria-describedby="mfa-success-description">
<div class="mfa-modal-title">
<h1 id="mfa-success-title">Flerfaktorautentisering</h1>
</div>
<div class="modal-success-body">
<div id="mfa-success-description" class="success-description">
<div>
<span>Det var det hele</span>
<p>Du har aktivert flerfaktorautentisering med autentiseringsappen din.</p>
</div>
<div>
<p class="web-content">Nå ber vi deg om en påloggingskode hver gang du logger på.</p>
<p class="mobile-content">Nå ber vi deg om en påloggingskode hver gang du logger på via en enhet vi ikke gjenkjenner.</p>
</div>
</div>
</div>
<div class="modal-footer">
<button id="mfa-registration-succes-button" class="modal-button button-done">Ferdig</button>
<input type="hidden" id="mfaSuccessfulNavUrl" value="${mfaSuccessfulNavUrl}">
</div>
</div>
</dialog>
<script>
const sucessNavButton = document.getElementById('mfa-registration-succes-button');
sucessNavButton.addEventListener('click', function(event) {
event.preventDefault();
const navUrl = document.getElementById('mfaSuccessfulNavUrl').value;
window.location = navUrl;
});
</script>
<input type="hidden" name="showMFARegistration" id="showMFARegistration" value="$showMFARegistration">
<input type="hidden" name="showMFAVerification" id="showMFAVerification" value="$showMFAVerification">
<input type="hidden" name="showMFASuccessFul" id="showMFASuccessFul" value="$showMFASuccessFul">
<input type="hidden" name="action" value="login">
<input type="hidden" name="new_loc" value="">
<input type="hidden" name="blackboard.platform.security.NonceUtil.nonce.ajax" value="a3d99130-7db8-40e4-a8a4-1f84b1d6fba9">
</form>
Text Content
BLACKBOARD LEARN ™ VIS ALTERNATIVER * Bokmål (Norge) * English (United States) * Nynorsk (Norge) * Hjelp * Personvern og vilkår for bruk * Tilgjengelighet * Logg inn i Blackboard * Alternativ innlogging Glemt passordet ditt? (nytt vindu) ALTERNATIV PÅLOGGING Aktiver JavaScript i nettleseren for at Blackboard-programmet skal fungere. * Brukernavn * Passord * Har du glemt passordet? FLERFAKTORAUTENTISERING Trinn 1 Last ned og installer en autentiseringsapp (f.eks. Microsoft Authenticator, Google Authenticator eller Authy) på telefonen. Trinn 2 Åpne autentiseringsappen og skann bildet nedenfor med telefonkameraet. Eventuelt kan du kopiere nøkkelen. Åpne autentiseringsappen og kopier nøkkelen nedenfor. ${mf aSec retK ey} Kopier nøkkelen - Nøkkelen er kopiert Trinn 3 Trykk på Neste for å legge inn koden og knytte den til kontoen din Avbryt Neste FLERFAKTORAUTENTISERING Skriv inn koden Skriv inn den 6-sifrede midlertidige koden som er generert av autentiseringsappen Tilbake Send FLERFAKTORAUTENTISERING Det var det hele Du har aktivert flerfaktorautentisering med autentiseringsappen din. Nå ber vi deg om en påloggingskode hver gang du logger på. Nå ber vi deg om en påloggingskode hver gang du logger på via en enhet vi ikke gjenkjenner. Ferdig Logg på med en tredjepartskonto * Logg inn i Blackboard Velkommen til Blackboards e-utdanningsplattform—. Den er utformet for å legge til rette for utdanningsinnovasjoner globalt ved å knytte sammen mennesker og teknologi. © 1997–2024 Blackboard Inc. Med enerett.