jam*_*upe 12 authentication backbone.js
我一直想知道我将如何使用Backbone对用户进行身份验证,因为我一直在阅读一些关于它的文章,其中很多都在讨论令牌和密钥..但我只是想能够登录用户并像平常一样注册用户.
我想在网络应用程序启动时会有一个请求路由'/我'然后服务器给用户返回适当的信息,如果他/她已登录.
就像路由回来时{loggedIn: false},骨干路由器只会将用户发送到登录/注册页面.但如果它返回用户个人资料信息,那么显然意味着他有一个会话.
这是使用Backbone时返回用户身份验证的好方法吗?
tim*_*ham 32
简短回答:连接$ .ajax以响应401(未授权)状态代码.
答案很长:我们在单页网站上使用RESTful api.当服务器检测到未经授权的请求时,它只返回401.客户端将重定向到/ login?#requested/resource.
/login 将提示授权(在我们的情况下重定向到谷歌的誓言服务器)然后添加授权cookie并重定向到最初请求 #requested/resource
我们还在每个$ .ajax请求上发送auth cookie.
希望这很有帮助.
define(
[
'jquery',
'jquery.cookie'
],
function ($) {
var redirectToLogin = function () {
var locationhref = "/login";
if (location.hash && location.hash.length > 0) {
locationhref += "?hash=" + location.hash.substring(1);
}
location.href = locationhref;
};
var $doc = $(document);
$doc.ajaxSend(function (event, xhr) {
var authToken = $.cookie('access_token');
if (authToken) {
xhr.setRequestHeader("Authorization", "Bearer " + authToken);
}
});
$doc.ajaxError(function (event, xhr) {
if (xhr.status == 401)
redirectToLogin();
});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12700 次 |
| 最近记录: |