summaryrefslogtreecommitdiff
path: root/examples/generate-uri.ts
diff options
context:
space:
mode:
Diffstat (limited to 'examples/generate-uri.ts')
-rw-r--r--examples/generate-uri.ts72
1 files changed, 72 insertions, 0 deletions
diff --git a/examples/generate-uri.ts b/examples/generate-uri.ts
new file mode 100644
index 0000000..9aee864
--- /dev/null
+++ b/examples/generate-uri.ts
@@ -0,0 +1,72 @@
+// examples/generate-uri.ts
+
+// Import directly from src for running locally before publishing
+// In a real project, you'd import from 'digiid-ts' after installing
+// Revert extension, ts-node should handle this when configured
+import { generateDigiIDUri, DigiIDError } from '../src/index';
+
+console.log('--- DigiID URI Generation Example ---');
+
+// --- Example 1: Secure Callback (HTTPS) ---
+const secureOptions = {
+ callbackUrl: 'https://myapp.example.com/api/auth/digiid',
+};
+
+try {
+ const secureUri = generateDigiIDUri(secureOptions);
+ console.log('\nSecure URI (HTTPS):');
+ console.log(` Callback: ${secureOptions.callbackUrl}`);
+ console.log(` Generated: ${secureUri}`);
+ // Typically, you would now generate a QR code from secureUri
+} catch (error) {
+ console.error('Error generating secure URI:', (error as Error).message);
+}
+
+// --- Example 2: Unsecure Callback (HTTP) for Testing ---
+const unsecureOptions = {
+ callbackUrl: 'http://localhost:8080/dev/callback',
+ unsecure: true, // Must set this flag for http
+};
+
+try {
+ const unsecureUri = generateDigiIDUri(unsecureOptions);
+ console.log('\nUnsecure URI (HTTP) for testing:');
+ console.log(` Callback: ${unsecureOptions.callbackUrl}`);
+ console.log(` Generated: ${unsecureUri}`);
+} catch (error) {
+ console.error('Error generating unsecure URI:', (error as Error).message);
+}
+
+// --- Example 3: Providing a Custom Nonce ---
+const customNonceOptions = {
+ callbackUrl: 'https://anotherapp.com/verify',
+ nonce: 'my-unique-secret-nonce-per-request-12345'
+};
+
+try {
+ const customNonceUri = generateDigiIDUri(customNonceOptions);
+ console.log('\nURI with Custom Nonce:');
+ console.log(` Callback: ${customNonceOptions.callbackUrl}`);
+ console.log(` Nonce: ${customNonceOptions.nonce}`);
+ console.log(` Generated: ${customNonceUri}`);
+} catch (error) {
+ console.error('Error generating URI with custom nonce:', (error as Error).message);
+}
+
+// --- Example 4: Invalid URL (Missing Scheme) ---
+const invalidUrlOptions = {
+ callbackUrl: 'myapi.com/auth' // Missing https://
+};
+
+console.log('\nAttempting URI with Invalid URL (expecting error):');
+try {
+ generateDigiIDUri(invalidUrlOptions as any);
+} catch (error) {
+ if (error instanceof DigiIDError) {
+ console.log(` Caught expected DigiIDError: ${error.message}`);
+ } else {
+ console.error(' Caught unexpected error:', error);
+ }
+}
+
+console.log('\n--- End of Generation Example ---');