mirror of
https://github.com/skooner-k8s/skooner.git
synced 2026-02-14 17:49:55 +00:00
fix import
This commit is contained in:
@@ -1,42 +0,0 @@
|
||||
/*
|
||||
Code copied from https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs
|
||||
*/
|
||||
|
||||
// GENERATING CODE VERIFIER
|
||||
function dec2hex(dec) {
|
||||
return ("0" + dec.toString(16)).substr(-2);
|
||||
}
|
||||
|
||||
function generateCodeVerifier() {
|
||||
var array = new Uint32Array(56 / 2);
|
||||
window.crypto.getRandomValues(array);
|
||||
return Array.from(array, dec2hex).join("");
|
||||
}
|
||||
|
||||
// Generate code challenge from code verifier
|
||||
|
||||
function sha256(plain) {
|
||||
// returns promise ArrayBuffer
|
||||
const encoder = new TextEncoder();
|
||||
const data = encoder.encode(plain);
|
||||
return window.crypto.subtle.digest("SHA-256", data);
|
||||
}
|
||||
|
||||
function base64urlencode(a) {
|
||||
var str = "";
|
||||
var bytes = new Uint8Array(a);
|
||||
var len = bytes.byteLength;
|
||||
for (var i = 0; i < len; i++) {
|
||||
str += String.fromCharCode(bytes[i]);
|
||||
}
|
||||
return btoa(str)
|
||||
.replace(/\+/g, "-")
|
||||
.replace(/\//g, "_")
|
||||
.replace(/=+$/, "");
|
||||
}
|
||||
|
||||
async function generateCodeChallengeFromVerifier(v) {
|
||||
var hashed = await sha256(v);
|
||||
var base64encoded = base64urlencode(hashed);
|
||||
return base64encoded;
|
||||
}
|
||||
@@ -6,6 +6,7 @@ const k8s = require('@kubernetes/client-node');
|
||||
const {createProxyMiddleware} = require('http-proxy-middleware');
|
||||
const toString = require('stream-to-string');
|
||||
const {Issuer} = require('openid-client');
|
||||
const crypto = require('crypto').webcrypto;
|
||||
|
||||
const NODE_ENV = process.env.NODE_ENV;
|
||||
const DEBUG_VERBOSE = !!process.env.DEBUG_VERBOSE;
|
||||
@@ -17,8 +18,54 @@ const OIDC_USE_PKCE = process.env.OIDC_USE_PKCE === "true" || false;
|
||||
const OIDC_METADATA = JSON.parse(process.env.OIDC_METADATA || '{}');
|
||||
const clientMetadata = Object.assign({client_id: OIDC_CLIENT_ID, client_secret: OIDC_SECRET}, OIDC_METADATA);
|
||||
|
||||
/*
|
||||
Code copied from https://stackoverflow.com/questions/63309409/creating-a-code-verifier-and-challenge-for-pkce-auth-on-spotify-api-in-reactjs
|
||||
*/
|
||||
|
||||
// GENERATING CODE VERIFIER
|
||||
function dec2hex(dec) {
|
||||
return ("0" + dec.toString(16)).substr(-2);
|
||||
}
|
||||
|
||||
function generateCodeVerifier() {
|
||||
var array = new Uint32Array(56 / 2);
|
||||
crypto.getRandomValues(array);
|
||||
return Array.from(array, dec2hex).join("");
|
||||
}
|
||||
|
||||
// Generate code challenge from code verifier
|
||||
|
||||
function sha256(plain) {
|
||||
// returns promise ArrayBuffer
|
||||
const encoder = new TextEncoder();
|
||||
const data = encoder.encode(plain);
|
||||
return crypto.subtle.digest("SHA-256", data);
|
||||
}
|
||||
|
||||
function base64urlencode(a) {
|
||||
var str = "";
|
||||
var bytes = new Uint8Array(a);
|
||||
var len = bytes.byteLength;
|
||||
for (var i = 0; i < len; i++) {
|
||||
str += String.fromCharCode(bytes[i]);
|
||||
}
|
||||
return btoa(str)
|
||||
.replace(/\+/g, "-")
|
||||
.replace(/\//g, "_")
|
||||
.replace(/=+$/, "");
|
||||
}
|
||||
|
||||
async function generateCodeChallengeFromVerifier(v) {
|
||||
var hashed = await sha256(v);
|
||||
var base64encoded = base64urlencode(hashed);
|
||||
return base64encoded;
|
||||
}
|
||||
|
||||
/*
|
||||
End of code copied for PKCE
|
||||
*/
|
||||
|
||||
const codeVerifier = generateCodeVerifier()
|
||||
const codeChallenge = generateCodeChallengeFromVerifier(codeVerifier)
|
||||
|
||||
|
||||
console.log('OIDC_URL: ', OIDC_URL || 'None');
|
||||
@@ -139,6 +186,7 @@ async function getOidcEndpoint() {
|
||||
scope: OIDC_SCOPES,
|
||||
}
|
||||
if (OIDC_USE_PKCE) {
|
||||
const codeChallenge = await generateCodeChallengeFromVerifier(codeVerifier)
|
||||
authParams = {
|
||||
...authParams,
|
||||
code_challenge: codeChallenge,
|
||||
|
||||
3327
server/package-lock.json
generated
3327
server/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -15,8 +15,9 @@
|
||||
"directory": "skooner/server"
|
||||
},
|
||||
"dependencies": {
|
||||
"@kubernetes/client-node": "^0.17.1",
|
||||
"@kubernetes/client-node": "^0.18.1",
|
||||
"cors": "^2.8.5",
|
||||
"crypto": "^1.0.1",
|
||||
"express": "^4.17.1",
|
||||
"http-proxy-middleware": "^1.3.0",
|
||||
"openid-client": "^5.1.3",
|
||||
|
||||
Reference in New Issue
Block a user