Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @using System.Security.Cryptography
- @using System.Text
- @using IdentityModel
- @inject NavigationManager NavigationManager
- @{
- var code_verifier = GenerateCodeVerifier();
- var code_challenge = GenerateCodeChallenge(code_verifier);
- var returnUrl = Uri.EscapeDataString(NavigationManager.Uri);
- var loginUrl = $"https://localhost:5001/connect/authorize" +
- $"?client_id=dev" +
- $"&response_type=code" +
- $"&scope=openid%20profile%20verification" +
- $"&redirect_uri=https://localhost:5137/authentication/login-callback" +
- $"&state={returnUrl}" +
- $"&code_challenge={code_challenge}" +
- $"&code_challenge_method=S256";
- NavigationManager.NavigateTo(loginUrl, forceLoad: true);
- }
- @code {
- private static string GenerateCodeVerifier()
- {
- var provider = RandomNumberGenerator.Create();
- var byteArray = new byte[32];
- provider.GetBytes(byteArray);
- return Base64Url.Encode(byteArray);
- }
- private static string GenerateCodeChallenge(string codeVerifier)
- {
- var buffer = Encoding.UTF8.GetBytes(codeVerifier);
- var sha256 = SHA256.Create();
- return Base64Url.Encode(sha256.ComputeHash(buffer));
- }
- }
Add Comment
Please, Sign In to add comment