Skip to content

Instantly share code, notes, and snippets.

@yannan
Forked from tonyxu-io/redirect.md
Created May 14, 2020 02:33
Show Gist options
  • Select an option

  • Save yannan/a2348a24b6875e069c575e50d79885f8 to your computer and use it in GitHub Desktop.

Select an option

Save yannan/a2348a24b6875e069c575e50d79885f8 to your computer and use it in GitHub Desktop.

Revisions

  1. @tonyxu-io tonyxu-io revised this gist Mar 31, 2020. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pkce-generator.html
    Original file line number Diff line number Diff line change
    @@ -10,7 +10,7 @@
    }
    function generateRandomString(length) {
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~";
    for (var i = 0; i < length; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
    }
  2. @tonyxu-io tonyxu-io revised this gist Jun 25, 2019. 1 changed file with 1 addition and 1 deletion.
    2 changes: 1 addition & 1 deletion pkce-generator.html
    Original file line number Diff line number Diff line change
    @@ -5,7 +5,7 @@
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
    <script>
    function generateCodeVerifier() {
    var code_verifier = generateRandomString(32)
    var code_verifier = generateRandomString(128)
    document.getElementById("code_verifier").value = code_verifier
    }
    function generateRandomString(length) {
  3. @tonyxu-io tonyxu-io revised this gist Jan 21, 2019. No changes.
  4. @tonyxu-io tonyxu-io revised this gist Jan 21, 2019. No changes.
  5. @tonyxu-io tonyxu-io revised this gist Jul 26, 2018. 1 changed file with 5 additions and 6 deletions.
    11 changes: 5 additions & 6 deletions pkce-generator.html
    Original file line number Diff line number Diff line change
    @@ -28,27 +28,26 @@
    var code_verifier = document.getElementById("code_verifier").value
    var code_challenge = generateCodeChallenge(code_verifier)
    document.getElementById("code_challenge").innerHTML = code_challenge
    document.getElementById("code_challenge_div").style.display ="block"
    }
    </script>
    </head>

    <body>
    <div>
    <label for="code_verifier">Type Code Verifier: </label>
    <input type="text" id="code_verifier" name="code_verifier">
    <span>
    <button onclick="generateCodeVerifier()">Generate For Me</button>
    </span>
    <label for="code_verifier">Code Verifier: </label>
    <input type="text" id="code_verifier" name="code_verifier" size="38">
    </div>
    <br>
    <div>
    <div style="display:none" id="code_challenge_div">
    Code Challenge:
    <span id="code_challenge">

    </span>
    </div>
    <br>
    <div>
    <button onclick="generateCodeVerifier()">Generate Code Verifier</button>
    <button onclick="submit()">Generate Code Challenge</button>
    </div>
    </body>
  6. @tonyxu-io tonyxu-io created this gist Jul 25, 2018.
    56 changes: 56 additions & 0 deletions pkce-generator.html
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,56 @@
    <!DOCTYPE html>
    <html>

    <head>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/crypto-js/3.1.9-1/crypto-js.min.js"></script>
    <script>
    function generateCodeVerifier() {
    var code_verifier = generateRandomString(32)
    document.getElementById("code_verifier").value = code_verifier
    }
    function generateRandomString(length) {
    var text = "";
    var possible = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
    for (var i = 0; i < length; i++) {
    text += possible.charAt(Math.floor(Math.random() * possible.length));
    }
    return text;
    }
    function generateCodeChallenge(code_verifier) {
    return code_challenge = base64URL(CryptoJS.SHA256(code_verifier))
    }

    function base64URL(string) {
    return string.toString(CryptoJS.enc.Base64).replace(/=/g, '').replace(/\+/g, '-').replace(/\//g, '_')
    }

    function submit() {
    var code_verifier = document.getElementById("code_verifier").value
    var code_challenge = generateCodeChallenge(code_verifier)
    document.getElementById("code_challenge").innerHTML = code_challenge
    }
    </script>
    </head>

    <body>
    <div>
    <label for="code_verifier">Type Code Verifier: </label>
    <input type="text" id="code_verifier" name="code_verifier">
    <span>
    <button onclick="generateCodeVerifier()">Generate For Me</button>
    </span>
    </div>
    <br>
    <div>
    Code Challenge:
    <span id="code_challenge">

    </span>
    </div>
    <br>
    <div>
    <button onclick="submit()">Generate Code Challenge</button>
    </div>
    </body>

    </html>