私はYelp APIとMEANスタックを使用して会場検索アプリを作っています。 Passport JSを使用してFacebookにログインした後、あなたは会場に行くことを自分自身に追加したり削除したりすることができます。ノード/エクスプレスでパスポートJSログイン後にリフレッシュページと検索がありませんか?
ユーザーが検索を入力し、その結果がページ(認証されていないユーザー)に表示された場合は、ログインしてホームページにリダイレクトされ、検索結果が更新されます。
私が望むのは、ユーザーが再度検索する必要がないということです。したがって、基本的にページのリフレッシュは行われません。また、すべての会場データを保持するオブジェクトであるAngularの$ scope.venuesのリフレッシュもありません。
例えば:私は、私はアムステルダムの
-
どうすればいいですか?
これらは、ノード/ ExpressのパスポートJSのルートです:
var passport = require('passport'); var FacebookStrategy = require('passport-facebook').Strategy; var session = require('express-session'); passport.serializeUser(function(user, done) { done(null, user); }); passport.deserializeUser(function(id, done) { done(null, id); }); app.get('/auth/facebook', passport.authenticate('facebook')); //Authenticate with Passport when hitting this route app.get('/auth/facebook/callback', passport.authenticate('facebook', { //Handle callback after successfully authenticated woth Facebook successRedirect: '#/reload/' + searchQuery, failureRedirect: '/error' }));
これは私が角に持っているものです。
angular.module("popperooApp", ['ngRoute']) .config(function($routeProvider) { $routeProvider .when("/", { templateUrl: "list.html", controller: "ListController" }).when("/reload/:query", { templateUrl: "list.html", controller: "ReloadController" }) .otherwise({ redirectTo: "/" }); }) .service("Venues", function($http) { this.getVenues = function(location) { var url = "search/" + location; return $http.get(url); }; }) .controller('ListController', function($scope, Venues) { $scope.searchLocation = function(location) { Venues.getVenues(location) .then(function(response) { $scope.venues = response.data; }, function(response) { alert("Error retrieving venues"); console.log(response); }); }; }) .controller('ReloadController', function($scope,Venues,$routeParams){ Venues.getVenues($routeParams.query) .then(function(response){ $scope.venues = response.data; }, function(response){ alert("Error retrieving venues"); console.log(response); }); })
私はMongoDBのデータベースにセッションを保存すべきか?私はAngularの '/'ルートにリダイレクトして何かをカスタムにしてはいけませんか?
ありがとうございました!
ありがとうございました!新しいReloadControllerで$ routeParamsを使ってみましたが、次のエラーが出ます:FacebookTokenError:この認証コードが使用されました。何が問題なの? – chemook78