Skip to content

Instantly share code, notes, and snippets.

@monbro
Forked from cllunsford/meteor-oauth-client.js
Created May 31, 2013 23:30
Show Gist options
  • Save monbro/5688633 to your computer and use it in GitHub Desktop.
Save monbro/5688633 to your computer and use it in GitHub Desktop.
var AUTH_URL = "https://api.glitch.com/oauth2/authorize?response_type=code&client_id=000yourclientid000&redirect_uri=http://yoursitehere/oauth/&scope=identity";
var Auth_Router = Backbone.Router.extend({
routes: {
"": "root",
"oauth/?code=:code": "auth"
},
root: function () {},
auth: function (code) {
Meteor.call('authenticate', code, function (error, result) {
//do something with returned data here
});
this.navigate('');
}
});
Meteor.startup(function () {
var router = new Auth_Router();
Backbone.history.start({pushState: true});
});
Meteor.methods({
authenticate: function (auth_code) {
this.unblock();
var res = Meteor.http.call("POST", "https://api.glitch.com/oauth2/token",
{params: {
grant_type : 'authorization_code',
code: auth_code,
client_id : secrets.glitch.client_id,
client_secret : secrets.glitch.client_secret,
redirect_uri : secrets.glitch.redirect_uri
}, headers: {
"content-type": "application/x-www-form-urlencoded"
}});
if (res.statusCode === 200) {
//use the access_token to retrieve something useful, for example
return auth_check(res.data.access_token);
}
}
});
var auth_check = function (token) {
var res = Meteor.http.call("GET", "http://api.glitch.com/simple/auth.check",
{params: {
oauth_token : token
}});
if (res.statusCode === 200) {
var json = JSON.parse(res.content);
//do something with the content here
}
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment