मैं एक सामान्य OAuth पैकेज का पता नहीं है। लेकिन यह भी मुश्किल अपने विशेष सर्वर के लिए एक पैकेज लिखने के लिए, के रूप में वहाँ को देखने के लिए उदाहरण के एक नंबर रहे हैं नहीं होना चाहिए। एक उदाहरण के रूप
का उपयोग खातों-GitHub, यहाँ क्लाइंट पर कनेक्शन बनाने के लिए code है। नोट endpoint यूआरएल, ग्राहक आईडी, गुंजाइश, आदि यह आपके लिए पॉपअप संभाल लेंगे, लेकिन आप शायद कस्टम सीएसएस शामिल करने के लिए चाहता हूँ:
var loginUrl =
'https://github.com/login/oauth/authorize' +
'?client_id=' + config.clientId +
'&scope=' + flatScope +
'&redirect_uri=' + OAuth._redirectUri('github', config) +
'&state=' + OAuth._stateParam(loginStyle, credentialToken);
OAuth.launchLogin({
loginService: "github",
loginStyle: loginStyle,
loginUrl: loginUrl,
credentialRequestCompleteCallback: credentialRequestCompleteCallback,
credentialToken: credentialToken,
popupOptions: {width: 900, height: 450}
});
और यहाँ server ओर से एक टुकड़ा है, इस प्रक्रिया को पूरा एक पहुंच टोकन प्राप्त करने:
var getAccessToken = function (query) {
var config = ServiceConfiguration.configurations.findOne({service: 'github'});
if (!config)
throw new ServiceConfiguration.ConfigError();
var response;
try {
response = HTTP.post(
"https://github.com/login/oauth/access_token", {
headers: {
Accept: 'application/json',
"User-Agent": userAgent
},
params: {
code: query.code,
client_id: config.clientId,
client_secret: OAuth.openSecret(config.secret),
redirect_uri: OAuth._redirectUri('github', config),
state: query.state
}
});
} catch (err) {
throw _.extend(new Error("Failed to complete OAuth handshake with Github. " + err.message),
{response: err.response});
}
if (response.data.error) { // if the http response was a json object with an error attribute
throw new Error("Failed to complete OAuth handshake with GitHub. " + response.data.error);
} else {
return response.data.access_token;
}
};
और टोकन का उपयोग उपयोगकर्ता पहचान पाने के लिए:
var getIdentity = function (accessToken) {
try {
return HTTP.get(
"https://api.github.com/user", {
headers: {"User-Agent": userAgent}, // http://developer.github.com/v3/#user-agent-required
params: {access_token: accessToken}
}).data;
} catch (err) {
throw _.extend(new Error("Failed to fetch identity from Github. " + err.message),
{response: err.response});
}
};
github और accounts-github संकुल संदर्भ के रूप में बहुत मददगार होना चाहिए।