重定向到页面,在标头中传递auth bearer token

时间:2017-04-10 14:53:21

标签: javascript ajax asp.net-mvc token bearer-token

我有一个简单的登录表单,POST到/ token,检索令牌并将其存储在本地javascript变量中。

关于此$.ajax() POST的成功,我想重定向到/ About,但我需要在重定向的标头中传递令牌,因为我的某些菜单项仅在用户被授权,IE:

    @if (User.IsInRole("external"))
    {
        <li>
            @Html.ActionLink("About", "About", "Home")
        </li>
    }

...等

我有一个简单的登录表单,用于处理用户名和密码,以及调用/ token端点并返回身份验证令牌的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" />
    <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();
};

这会将我重定向到401 Unuthorized(关于)

是否可以重定向到另一个页面,但首先将Auth Bearer令牌添加到标题?

由于

0 个答案:

没有答案
相关问题