我有一个简单的登录表单 POST
s到/ token,检索令牌并将其存储在本地javascript变量中 .
关于这个成功 $.ajax()
POST
我想重定向到/ About,但是我需要在重定向的 Headers 中传递令牌,因为我的一些菜单项只有在用户被授权时才可用,IE:
@if (User.IsInRole("external"))
{
<li>
@Html.ActionLink("About", "About", "Home")
</li>
}
...等等
我有一个简单的登录表单,用于处理用户名和密码,以及调用/ token endpoints 并返回auth令牌的JS,然后意图重定向到/ 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" />
<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();
};
这会将我重定向到 401 Unuthorized
(关于)
是否可以重定向到另一个页面,但首先将Auth Bearer令牌添加到 Headers ?
谢谢