这是我在客户端的代码。我想要实现的目标很清楚。如果用户拥有cookie,则会对其进行身份验证,否则将重定向到服务器上的身份验证端点
(function() {
'use strict';
angular
.module('App', [
'ui.router',
'ngResource',
'ngCookies' ])
.run(['$window', '$cookies', '$state', function($window, $cookies, $state) {
if($cookies['cookie-app']) {
console.log('authenticated');
} else {
$window.location.href = "http://" + $window.location.host + "/auth/facebook";
}
}]);
})();
这是服务器端使用 Hapijs 编写的代码
module.exports = function(request, reply) {
if (request.auth.isAuthenticated) {
console.log(request.auth.credentials.profile.raw);
request.auth.session.set(request.auth.credentials.profile.raw);
return reply.redirect('http://localhost:8080');
}
reply('Not logged in').code(401);
};
cookie 设置正确,但我在 if 中没有得到真,然后我得到一个无限循环。 我的方案如下。 nginx提供AngularJS文件,它充当Hapijs服务器的反向代理。
你知道为什么吗?
它需要禁用 happy-auth-cookie 选项上的httpOnly
标志