2014-06-13 17 views
11

के साथ कोणीय ऐप में फेसबुक द्वारा लॉगिन करें मैं मजबूत लूपबैक बैकएंड के साथ एक कोणीय अनुप्रयोग बना रहा हूं।लूपबैक बैकएंड

इसके अलावा मैं लूपबैक-पासपोर्ट मॉड्यूल का उपयोग करके फेसबुक द्वारा किसी तृतीय पक्ष लॉगिन को एकीकृत करता हूं।

सब कुछ लूपबैक-उदाहरण-पासपोर्ट में ठीक था और मेरे ऐप पर रीडायरेक्ट करने के पल से ठीक पहले मेरे ऐप में सब ठीक है। उपयोगकर्ता और एक्सेस-टोकन बनाया गया।

कोड:

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

    res.redirect('/#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/उपयोगकर्ताओं/2 बनाता है लेकिन 401 त्रुटि प्राप्त करता है:

मैं रूट करने के लिए '/ # प्रमाणन/लॉगिन' एक नियंत्रक की कोशिश की।

अगर मैं फ़ाइल /loopback/lob/models/user.js अनुमति की स्थापना tweak:

principalType: ACL.ROLE, 
    // principalId: Role.OWNER, 
    principalId: Role.EVERYONE, 
    permission: ACL.ALLOW, 
    property: "findById" 

फिर अनुरोध प्राप्त/API/उपयोगकर्ताओं/2 200 प्राप्त करता है और सब कुछ ठीक।

मैं थोड़ा उलझन में हूं। मैं समझ नहीं पा रहा हूं कि मेरे कोणीय ऐप को लूपबैक के लिए प्रमाणीकृत कैसे किया जाए, हालांकि मुझे एक्सेस-टोकन और उपयोगकर्ता आईडी

क्या कोई भी विचार है कि इसे कैसे करें?

उत्तर

8

यहां एक वैध कोड है।

लेकिन लूपबैक-कोणीय:

  res.cookie('access-token', info.accessToken.id, { signed: true, 
      maxAge: info.accessToken.ttl }); 

स्ट्रिंग में यह निम्नलिखित ".eBvo8bpo9Q9wnNrPjjlG% 2FAcYqWkxEgNFqn% 2FO54rdGwY s" तरह दिखता है:

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'); 
}); 

समस्या यह है कि लूपबैक-पासपोर्ट संकेत कुकी है सिर्फ हेडर-प्राधिकरण के लिए एक्सेस-टोकन की प्रतिलिपि बनाता है, इसलिए हमें वहां सादे कुकी डालना होगा।

+0

क्या कोई इस के लिए नमूना आवेदन साझा करना चाहेगा? धन्यवाद! – imesh

संबंधित मुद्दे