sosyal medyayı kullanarak insanların daha sağlıklı hayat var yardımcı olur. Şu anda, ön taraftaki AngularJS ile bir ExpressJS sunucusunda OAuth aracılığıyla Twitter'a erişim üzerinde çalışıyorum. website of AngularJS itibarenAngularJS'de http.get'deki yönlendirme nasıl uygulanır? Ben antrenörler için bir web sitesi üzerinde çalışıyorum
:
bir başarı durumu olarak kabul edilir ve başarı geri arama çağrılan sonuçlanacaktır 200 ve 299 arasında bir yanıt durum kodu. yanıtı yönlendirme ise, XMLHttpRequest şeffaf hata geri arama bu tür tepkilerin çağrısında olmayacak anlamına onu takip unutmayın.
benim sunucunun tam kod web.js ve github twitter.js bulunabilir, ancak bu arayanın geçerli:
function LoginCtrl($scope, $http, $location) {
$scope.welcome = 'Sign in with Twitter';
$http.defaults.useXDomain = true;
$scope.submit = function() {
$http({method: 'GET', url: '/sessions/connect'}).
success(function(data, status) {
$scope.welcome = data;
});
};
}
Ve bu web.js içinde Aranan geçerli:
app.get('/sessions/connect', function(req, res){
consumer().getOAuthRequestToken(function(error, oauthToken, oauthTokenSecret, results){
if (error) {
res.send("Error getting OAuth request token : " + sys.inspect(error), 500);
} else {
req.session.oauthRequestToken = oauthToken;
req.session.oauthRequestTokenSecret = oauthTokenSecret;
res.redirect("https://api.twitter.com/oauth/authorize?oauth_token="+req.session.oauthRequestToken);
}
});
});
tcpdump
ile (üzgünüm, eski moda olduğumu) kontrol edersem görüyorum:
Connection:.keep-alive....Moved.Temporarily..Redirecting.to.https://api.twitter.com/oauth/authorize?oauth_token=***
Bu gerçekten güzel ve elbette bu sunucuya /sessions/connect
tarayıcısına giderken gerçekten oluyor. Ancak, AngularJS ile tarayıcı ekranım aslında yönlendirilmemiş. Neden olmasın?
Ancak, "res.send" ("https: //" yönlendirme önerisi) kullanırsam, kendimi Twitter sayfasına yönlendiririm. Oradan benim sunucuda bir şey (rota '/ oturum/callback') adı verilecek ve bunu angularjs denetleyicisi o geri arama için yanıt nesnesi değildir elde etmek mümkün olmayacaktır? AngularJS ile birlikte sunucuda 'oauth' kullanmak mümkün değil mi? Sen Twitter tarayıcıyı yeniden yönlendirmek için konum https://dev.twitter.com/docs/auth/implementing-sign-twitter ve Twitter sunucunuza geri yönlendirme yapar: –
@ondervloei Heyecan kendi web sitesinde OAuth sürecini ayrıntılarıyla belirteci ile. Ardından, jetonu sunucunuzdan Angular'a döndürebilirsiniz. Sayfanızı orada tutmak istiyorsanız yeni bir pencere açabilirsiniz. –
C++ 'da önce oauth'u uyguladı. Maalesef, sunucu tarafı ve istemci tarafı kodu arasındaki etkileşimlerde burada gerektiği kadar deneyimli değilim. Sanırım genel planı anladım, yani AngularJS ile müşteri tarafında rotaları ayarlayarak. Bu bulmacanın bazı parçaları var ve beni bu web sitelerine yönlendirdiğimde, onları ziyaret etmediğimi varsayar. :-) –