Tengo un formulario de inicio de sesión simple que POST s to /token, recupera el token y lo almacena en una variable javascript local.
En el éxito de este POST de $.ajax() , quiero redirigir a /Acerca de, pero necesito pasar el token en el encabezado de la redirección, porque algunos de mis elementos de menú están disponibles solo si el usuario está autorizado, IE:
@if (User.IsInRole("external")) { <li> @Html.ActionLink("About", "About", "Home") </li> }...etc
Tengo un formulario de inicio de sesión simple que maneja el nombre de usuario y la contraseña, junto con JS que llama al punto final/token y devuelve el token de autenticación, la intención es redirigir a/home:
<form id="userLogin"> <label for="txtUserName">UserName: </label> <input type="text" id="UserName" name="UserName" /> <label for="txtPassword">Password: </label> <input type="password" id="Password" name="Password" /> <br /> <input type="button" id="btnLogin" class="btn" value="Sign In" /> </form> var signIn = function () { var signinUrl = "http://localhost/QRG.MVC/token"; var signInData = $("#userLogin").serialize(); signInData = signInData + "&grant_type=password"; debugger; $.ajax({ type: "POST", url: signinUrl, data: signInData, success: saveAccessToken }); }; var token = ""; var saveAccessToken = function (data) { token = data.access_token; debugger; $.redirect("/QRG.MVC/Home/About", { 'Authorization': 'Bearer ' + token }); // also tried using the myRedirect function below: // myRedirect("http://localhost/QRG.MVC/Home/About", "Authorization", "Bearer " + token); }; var myRedirect = function (redirectUrl, arg, value) { var form = $('<form action="' + redirectUrl + '" method="post">' + '<input type="hidden" name="' + arg + '" value="' + value + '"></input>' + '</form>'); $('body').append(form); debugger; $(form).submit(); }; Esto me redirige a un 401 Unuthorized (Acerca de)
¿Es posible redirigir a otra página pero agregar primero el token del portador de autenticación al encabezado?
Gracias