Skip to content
This repository has been archived by the owner on Apr 11, 2023. It is now read-only.

Commit

Permalink
feat: Add new demo page to handle issuance initiate request
Browse files Browse the repository at this point in the history
Signed-off-by: Talwinder Kaur <[email protected]>
  • Loading branch information
Talwinder kaur committed Sep 16, 2022
1 parent 9e98097 commit 0a3cd63
Show file tree
Hide file tree
Showing 2 changed files with 105 additions and 0 deletions.
35 changes: 35 additions & 0 deletions test/mock/adapter/adapter.go
Original file line number Diff line number Diff line change
Expand Up @@ -55,6 +55,7 @@ const (
waciIssuerHTML = "./templates/issuer/waci-issuer.html"
oidcIssuerHTML = "./templates/issuer/oidc-issuer.html"
oidcIssuerLoginHTML = "./templates/issuer/oidc-login.html"
oidcIssuerV2HTML = "./templates/issuer/oidc-issuer-v2.html"

// verifier html templates
verifierHTML = "./templates/verifier/verifier.html"
Expand Down Expand Up @@ -133,7 +134,9 @@ func startAdapterApp(agent *didComm, router *mux.Router) error {
router.HandleFunc("/issuer/waci-issuance/{id}", app.waciIssuanceCallback)
router.HandleFunc("/issuer/oidc", app.oidcIssuer)
router.HandleFunc("/issuer/oidc/login", app.oidcIssuerLogin)
router.HandleFunc("/issuer/oidc/v2", app.openIssuerV2)
router.HandleFunc("/issuer/oidc/issuance", app.initiateIssuance).Methods(http.MethodPost)
router.HandleFunc("/issuer/oidc/issuance/v2", app.initiateIssuanceV2).Methods(http.MethodPost)
router.HandleFunc("/{id}/.well-known/openid-configuration", app.wellKnownConfiguration).Methods(http.MethodGet)
router.HandleFunc("/{id}/issuer/oidc/authorize", app.issuerAuthorize).Methods(http.MethodGet)
router.HandleFunc("/issuer/oidc/authorize-request", app.issuerSendAuthorizeResponse).Methods(http.MethodPost)
Expand Down Expand Up @@ -173,6 +176,10 @@ func (v *adapterApp) oidcIssuerLogin(w http.ResponseWriter, r *http.Request) {
loadTemplate(w, oidcIssuerLoginHTML, nil)
}

func (v *adapterApp) openIssuerV2(w http.ResponseWriter, r *http.Request) {
loadTemplate(w, oidcIssuerV2HTML, nil)
}

// verifier html template endpoints
func (v *adapterApp) verifier(w http.ResponseWriter, r *http.Request) {
loadTemplate(w, verifierHTML, nil)
Expand Down Expand Up @@ -482,6 +489,34 @@ func (v *adapterApp) oidcShareCallback(w http.ResponseWriter, r *http.Request) {
)
}

func (v *adapterApp) initiateIssuanceV2(w http.ResponseWriter, r *http.Request) {
r.ParseForm()

walletURL := r.FormValue("walletInitIssuanceURL")
initiateIssuanceRequest := r.FormValue("initiateIssuanceRequest")
parsedInitiateRequest, err := url.Parse(initiateIssuanceRequest)
if err != nil {
panic(err)
}

u, err := url.Parse(walletURL)
if err != nil {
handleError(w, http.StatusInternalServerError,
fmt.Sprintf("failed to parse wallet init issuance URL : %s", err))

return
}

q := u.Query()

// Appending whatever is getting from query string to wallet url
q.Add("requestUri", parsedInitiateRequest.Query().Encode())

u.RawQuery = q.Encode()

http.Redirect(w, r, u.String(), http.StatusFound)
}

func (v *adapterApp) initiateIssuance(w http.ResponseWriter, r *http.Request) {
r.ParseForm()

Expand Down
70 changes: 70 additions & 0 deletions test/mock/adapter/templates/issuer/oidc-issuer-v2.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
<!--
Copyright SecureKey Technologies Inc. All Rights Reserved.
SPDX-License-Identifier: Apache-2.0
-->


<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
<meta charset="UTF-8">
<title>Demo OIDC Issuer</title>
<script src="https://rawgit.com/sitepoint-editors/jsqrcode/master/src/qr_packed.js"></script>
<script src="https://unpkg.com/html5-qrcode"></script>
<body>

<h1>OPENID4VC DEMO</h1>
<form action="/issuer/oidc/issuance/v2" id="oidc-issuance-form" method="POST">
<table style="border-spacing: 10px">
<tr>
<td><label>Wallet Initiate Issuance URL</label></td>
<td>
<input
type="text"
id="walletURL"
name="walletInitIssuanceURL"
value="https://wallet.trustbloc.local:8091/oidc/initiate"
size="50"
/>
</td>
</tr>
<tr>
<td><label>Initiate Issuance Request</label></td>
<td>
<textarea
id="initiateIssuanceRequest"
name="initiateIssuanceRequest"
rows="10" cols="50"
></textarea>
</td>
</tr>
</table>
<input
type="submit"
id="openid-issuance"
value="Demo"
/>
</form>
<div id="qr-reader" style="width:500px"></div>
<div id="qr-reader-results"></div>
</body>
<script>
var resultContainer = document.getElementById('qr-reader-results');
var lastResult, countResults = 0;

function onScanSuccess(decodedText, decodedResult) {
if (decodedText !== lastResult) {
++countResults;
lastResult = decodedText;
// Handle on success condition with the decoded message.
console.log(`Scan result ${decodedText}`, decodedResult);
}
}

var html5QrcodeScanner = new Html5QrcodeScanner(
"qr-reader", { fps: 10, qrbox: 250 });
html5QrcodeScanner.render(onScanSuccess)
</script>
</head>
</html>

0 comments on commit 0a3cd63

Please sign in to comment.