* Added /device/token handler with associated business logic and storage tests. Perform user code exchange, flag the device code as complete. Moved device handler code into its own file for cleanliness. Cleanup * Removed PKCE code * Rate limiting for /device/token endpoint based on ietf standards * Configurable Device expiry Signed-off-by: justin-slowik <justin.slowik@thermofisher.com>
		
			
				
	
	
		
			24 lines
		
	
	
		
			934 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
			
		
		
	
	
			24 lines
		
	
	
		
			934 B
		
	
	
	
		
			HTML
		
	
	
	
	
	
{{ template "header.html" . }}
 | 
						|
 | 
						|
<div class="theme-panel">
 | 
						|
  <h2 class="theme-heading">Enter User Code</h2>
 | 
						|
  <form method="post" action="{{ .PostURL }}" method="get">
 | 
						|
    <div class="theme-form-row">
 | 
						|
      {{ if( .UserCode  )}}
 | 
						|
      <input tabindex="2" required id="user_code" name="user_code" type="text" class="theme-form-input" autocomplete="off" value="{{.UserCode}}" {{ if .Invalid }} autofocus {{ end }}/>
 | 
						|
      {{ else }}
 | 
						|
      <input tabindex="2" required id="user_code" name="user_code" type="text" class="theme-form-input" placeholder="XXXX-XXXX" autocomplete="off"  {{ if .Invalid }} autofocus {{ end }}/>
 | 
						|
      {{ end }}
 | 
						|
    </div>
 | 
						|
 | 
						|
    {{ if .Invalid }}
 | 
						|
    <div id="login-error" class="dex-error-box">
 | 
						|
      Invalid or Expired User Code
 | 
						|
    </div>
 | 
						|
    {{ end }}
 | 
						|
    <button tabindex="3" id="submit-login" type="submit" class="dex-btn theme-btn--primary">Submit</button>
 | 
						|
  </form>
 | 
						|
</div>
 | 
						|
 | 
						|
{{ template "footer.html" . }}
 |