gpt4 book ai didi

angularjs - 在带有环回后端的 Angular 应用程序中通过 facebook 登录

转载 作者:行者123 更新时间:2023-12-04 02:15:08 34 4
gpt4 key购买 nike

我正在使用 strongloop 环回后端制作一个 Angular 应用程序。

我还使用 loopback-passport 模块通过 facebook 集成了第三方登录。

loopback-example-passport 中的一切都很好,在重定向到我的应用程序之前,我的应用程序中的一切都很好。已创建用户和访问 token 。

编码:

app.get('/auth/login', ensureLoggedIn('/#login'), function(req, res, next) {
console.log('LOOGED IN!!');
console.log(req.user);

res.redirect('/#auth/login');
});

工作正常。但我无法理解。如何为我的 Angular 应用程序提供经过身份验证的状态。

我试图制作一个 Controller 来路由'/#auth/login':
.controller('AuthCalbackCtrl', function($scope, $cookies, $location, AppAuth, $http, User, LoopBackAuth) {
//analogue of User.login responce interceptor
LoopBackAuth.currentUserId = $cookies['userId'] || null;
LoopBackAuth.accessTokenId = $cookies['access-token'] || '';
LoopBackAuth.rememberMe = false;
LoopBackAuth.save();
//asking for currentUser
User.getCurrent(function(user) {
console.log('ser.getCurrent ', user);
});
$location.path('/');
})

此代码发出请求 GET/api/users/2 但收到 401 错误。

如果我调整文件/loopback/lob/models/user.js 设置权限:
  principalType: ACL.ROLE,
// principalId: Role.OWNER,
principalId: Role.EVERYONE,
permission: ACL.ALLOW,
property: "findById"

然后请求 GET/api/users/2 收到 200 并且一切正常。

我有点困惑。我不明白如何让我的 Angular 应用程序对环回进行身份验证,尽管我知道 access-token 和 userId

有人知道怎么做吗?

最佳答案

这是一个有效的代码。

app.get('/auth/login', function(req, res, next) {
//workaround for loopback-password
//without this angular-loopback would make incorrect authorization header
res.cookie('access-token', req.signedCookies['access-token']);
res.cookie('userId', req.user.id);
res.redirect('/#auth/login');
});

问题是环回 Passport 标志cookie:
         res.cookie('access-token', info.accessToken.id, { signed: true,
maxAge: info.accessToken.ttl });

在字符串中,它看起来类似于以下“s:.eBvo8bpo9Q9wnNrPjjlG%2FAcYqWkxEgNFqn%2FO54rdGwY”

但是 loopback-angular 只是将 access-token 复制到 header.authorization,所以我们需要把纯 cookie 放在那里。

关于angularjs - 在带有环回后端的 Angular 应用程序中通过 facebook 登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24213792/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com