2013-09-06 2 views
1

Meteor의 oauth 패키지에있는 oauth_server.js에있는 함수를 재정의해야합니다.Meteor의 oauth 패키지 덮어 쓰기

var closePopup = function(res) { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    var content = 
     '<html><head><script>window.close()</script></head></html>'; 
    res.end(content, 'utf-8'); 
}; 

을 같은 뭔가 - -

내가 대체 할

var closePopup = function(res) { 
    res.writeHead(200, {'Content-Type': 'text/html'}); 
    var content = 
     '<html><head><script>window.location.href = "http://www.google.com/";</script></head></html>'; 
    res.end(content, 'utf-8'); 
}; 

패키지하는 핵심 유성 패키지 그래서 난 그냥 그것을 제거하고 수정 된 버전을 추가 할 수 있다고 생각하지 않습니다 .

주 서버 코드에 편집 된 변수 (함수)를 추가하려했지만 유성 행동을 변경하지 않았습니다.

미리 감사드립니다. Daniel.

답변

2

기존 패키지를 덮어 쓰려면 패키지를 만들어야합니다.

oauth의 파일을 바꾸려면 oauth에서 패키지의 모든 파일을 포함하는 새 패키지를 만들어야합니다.

그런 다음이 새 패키지를 /packages에 넣고 meteor add oauth을 실행하여 프로젝트에 추가하십시오. 새 패키지는 기존의 표준 유성 값보다 우선합니다.

유성이 패키지를 업데이트 할 때마다 최신 상태로 유지해야한다는 것을 의미합니다.

+0

oauth 패키지를 덮어 쓰려고합니다. 수정 된 패키지를 만들고 "meteor add oauth"를 시도하면 "oauth : no package"가 나타납니다. – user1720271

+0

이 패키지를'/ packages' 폴더에 추가 했습니까? 그리고 그 oauth 전화? 이전에 어떤 특정 oauth 패키지를 대체 할 것인지 알지 못했습니다. 평범한 'oauth'하나? – Akshat

+0

Btw 어제부터 에밀리의 대답을 사용하고 싶다면'meteor remove oauth'를 실행하고 패키지를 추가해야했지만 그 단계는 약간 다릅니다. 'standard-app-packages'를 제거하고'oauth'가 아닌 수동으로 원하는 패키지를 추가 할 필요가 있습니다. 대신 사용자 정의 패키지를 사용하십시오. – Akshat

2

또 다른 옵션은 최근에 OAuth._checkRedirectUrlOrigin을 재정의해야하는 기능을 내 소유로 대체하는 것입니다. 이 함수는 유성 소스 코드에서 필요한 경우 재정의해야한다고 했으므로 다음과 같이 수행했습니다.

Meteor.startup(function() { 
    Package['oauth'].OAuth._checkRedirectUrlOrigin = function (redirectUrl) { 
    console.log(redirectUrl); 
    var appHost = "http://localhost:3000"; 
    var appHostReplacedLocalhost = Meteor.absoluteUrl(undefined, { 
     replaceLocalhost: true 
    }); 
    return (
     redirectUrl.substr(0, appHost.length) !== appHost && 
     redirectUrl.substr(0, appHostReplacedLocalhost.length) !== appHostReplacedLocalhost 
    ); 
    }; 
    // testing if it worked :) 
    Meteor.setTimeout(function() { 
    console.log(Package['oauth'].Oauth._checkRedirectUrlOrigin.toString()); 
    }, 5000); 
}); 
+0

와우. 이것은 내가 찾고 있었던 바로 그 것이다. 고맙습니다! 유성 패키지 메서드를 실제로 무시하는 방법을 알아낼 수 없습니다. – Ryan