implemented forwarding errors to UI

Signed-off-by: Stephan Richter <s.richter@srsoftware.de>
This commit is contained in:
2024-10-19 21:48:40 +02:00
parent 5458e6d015
commit 640b49a70b
4 changed files with 98 additions and 84 deletions

View File

@@ -22,7 +22,21 @@
<button type="button" onclick="grantAutorization(365)">Yes - for 1 year</button>
<button type="button" onclick="denyAutorization()">No</button>
</div>
<div id="error" class="error" style="display: none"></div>
<div id="error_missing_parameter" class="error">
Request does not contain required parameter "<span id="parameter"></span>"!
</div>
<div id="error_unknown_client" class="error">
Client "<span id="client_id"></span>" unknown to backend!
</div>
<div id="error_unsupported_response_type" class="error">
Response type "<span id="response_type"></span>" not supported!
</div>
<div id="error_missing_code" class="error">
Missing response type: code
</div>
<div id="error_invalid_redirect" class="error">
invalid redirect: <span id="redirect_uri"></span>
</div>
<div id="missing_scopes" class="error" style="display: none">Authorization resource contained neither list of <em>unauthorized scopes</em> nor list of <em>authorized scopes</em>! This is a server problem.</div>
</body>
</html>

View File

@@ -18,6 +18,7 @@ function showScope(response,scope){
}
function handleResponse(response){
hideAll('error');
if (response.ok){
response.json().then(json => {
if (json.rp) {
@@ -43,19 +44,23 @@ function handleResponse(response){
});
} else {
console.log("handleResponse(…) ← ",response);
if (response.status == 401){
if (response.status == 401){ // unauthorized
login();
return;
}
response.json().then(json => {
setText('error',"Error: <br/>"+json.error_description);
show('error');
console.log("handleResponse → error",json);
if (json.error) show(json.error);
if (json.metadata.client_id) setText('client_id',json.metadata.client_id);
if (json.metadata.parameter) setText('parameter',json.metadata.parameter);
if (json.metadata.redirect_uri) setText('redirect_uri',json.metadata.redirect_uri);
if (json.metadata.response_type)setText('response_type',json.metadata.response_type)
});
if (json.error != "invalid_request_uri"){
/*if (json.error != "invalid_request_uri"){
var url = params.get('redirect_uri') + '?' + new URLSearchParams(json).toString();
console.log('redirecting to '+url);
redirect(url);
}
}*/
}
}