我有一个建立在 .NET MVC4 之上的 Backbone/RequireJS 应用程序。我正在使用表单身份验证来针对我们的后端数据存储对用户进行身份验证,这很好用。
我们的服务层是一个 .NET Web Api 项目(RESTful API),并且使用令牌化方法进行身份验证(初始请求包括基本身份验证标头。如果身份验证成功,则响应负载包括身份验证令牌。后续请求传递令牌)。
我不确定现在如何针对我们的服务层进行身份验证。我确定我必须传递 auth 标头,但不确定如何生成令牌,因为我的 JS 中没有用户名/密码。
我应该在这里完全绕过 Forms auth,并简单地通过 SSL 发出 ajax 请求吗?我也可以 POST 到 /Account/Login 操作,并使用 Membership Provider 来验证凭据。如果成功,我可以为初始请求添加 Auth 标头并为后续请求使用身份验证令牌。
在此处添加身份验证标头/自定义令牌的示例:
$.ajaxSetup({
'beforeSend': function (xhr) {
if($.cookie("AuthToken")) {
xhr.setRequestHeader("CustomTokenHeader", $.cookie("AuthToken"));
} else {
var token = methodToBase64EncodeUsernamePassword(username, password);
xhr.setRequestHeader("Authentication", "Basic " + token);
}
}
});