私は、strongloop ループバック バックエンドを使用して角度のあるアプリケーションを作成しています。
また、loopback-passport モジュールを使用して、Facebook によるサードパーティのログインを統合します。
loopback-example-passport ではすべて問題なく、アプリにリダイレクトする直前のアプリでもすべて問題ありませんでした。ユーザーとアクセストークンが作成されました。
コード:
app.get('/auth/login', ensureLoggedIn('/#login'), function(req, res, next) {
console.log('LOOGED IN!!');
console.log(req.user);
res.redirect('/#auth/login');
});
正常に動作します。しかし、私は理解できません。angularアプリケーションに認証済み状態を与える方法。
「/#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 を受け取り、すべて問題ありません。
私は少し混乱しています。access-token と userId は知っていますが、Angular アプリをループバックに認証させる方法がわかりません
それを行う方法はありますか?