mirror of
https://github.com/meteor/meteor.git
synced 2026-05-02 03:01:46 -04:00
More renaming to meteorid, and update to new api endpoints
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
Accounts.oauth.registerService("meteorid");
|
||||
Accounts.oauth.registerService("meteorId");
|
||||
|
||||
if (Meteor.isClient) {
|
||||
Meteor.loginWithMeteorId = function (callback) {
|
||||
Meteor.loginWithMeteorId = function (options, callback) {
|
||||
var credentialRequestCompleteCallback =
|
||||
Accounts.oauth.credentialRequestCompleteHandler(callback);
|
||||
MeteorId.requestCredential(credentialRequestCompleteCallback);
|
||||
@@ -10,11 +10,11 @@ if (Meteor.isClient) {
|
||||
Accounts.addAutopublishFields({
|
||||
// publish all fields including access token, which can legitimately be used
|
||||
// from the client (if transmitted over ssl or on localhost).
|
||||
forLoggedInUser: ['services.meteorid'],
|
||||
forLoggedInUser: ['services.meteorId'],
|
||||
forOtherUsers: [
|
||||
'services.meteorid.username',
|
||||
'services.meteorid.profile',
|
||||
'services.meteorid.id'
|
||||
'services.meteorId.username',
|
||||
'services.meteorId.profile',
|
||||
'services.meteorId.id'
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
#login-buttons-image-meteorid {
|
||||
#login-buttons-image-meteorId {
|
||||
background-image: url(data:image/png;base64,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);
|
||||
}
|
||||
@@ -5,7 +5,7 @@ MeteorId = {};
|
||||
// completion. Takes one argument, credentialToken on success, or Error on
|
||||
// error.
|
||||
MeteorId.requestCredential = function (credentialRequestCompleteCallback) {
|
||||
var config = ServiceConfiguration.configurations.findOne({service: 'meteorid'});
|
||||
var config = ServiceConfiguration.configurations.findOne({service: 'meteorId'});
|
||||
if (!config) {
|
||||
credentialRequestCompleteCallback &&
|
||||
credentialRequestCompleteCallback(
|
||||
@@ -17,11 +17,11 @@ MeteorId.requestCredential = function (credentialRequestCompleteCallback) {
|
||||
var credentialToken = Random.id();
|
||||
|
||||
var loginUrl =
|
||||
METEORID_URL + "/authorize?" +
|
||||
METEORID_URL + "/oauth2/authorize?" +
|
||||
"state=" + credentialToken +
|
||||
"&response_type=code&" +
|
||||
"client_id=" + config.clientId +
|
||||
"&redirect_uri=" + Meteor.absoluteUrl("_oauth/meteor/close");
|
||||
"&redirect_uri=" + Meteor.absoluteUrl("_oauth/meteorId/close");
|
||||
|
||||
Oauth.showPopup(
|
||||
loginUrl,
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
<template name="configureLoginServiceDialogForMeteor">
|
||||
<template name="configureLoginServiceDialogForMeteorId">
|
||||
<p>
|
||||
First, you'll need to get a MeteorId Client ID.
|
||||
Set Authorized Redirect URIs to:
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
Template.configureLoginServiceDialogForMeteor.siteUrl = function () {
|
||||
Template.configureLoginServiceDialogForMeteorId.siteUrl = function () {
|
||||
return Meteor.absoluteUrl();
|
||||
};
|
||||
|
||||
Template.configureLoginServiceDialogForMeteor.fields = function () {
|
||||
Template.configureLoginServiceDialogForMeteorId.fields = function () {
|
||||
return [
|
||||
{property: 'clientId', label: 'Client ID'},
|
||||
{property: 'secret', label: 'Client secret'}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
MeteorId = {};
|
||||
|
||||
Oauth.registerService("meteorid", 2, null, function (query) {
|
||||
Oauth.registerService("meteorId", 2, null, function (query) {
|
||||
var response = getTokens(query);
|
||||
var accessToken = response.accessToken;
|
||||
var identity = getIdentity(accessToken);
|
||||
@@ -20,7 +20,8 @@ Oauth.registerService("meteorid", 2, null, function (query) {
|
||||
|
||||
return {
|
||||
serviceData: serviceData,
|
||||
options: {profile: {name: identity.name}}
|
||||
options: {profile: {name: serviceData.username}}
|
||||
// XXX use username for name until meteor accounts has a profile with a name
|
||||
};
|
||||
});
|
||||
|
||||
@@ -30,22 +31,20 @@ Oauth.registerService("meteorid", 2, null, function (query) {
|
||||
// - refreshToken, if this is the first authorization request and we got a
|
||||
// refresh token from the server
|
||||
var getTokens = function (query) {
|
||||
var config = ServiceConfiguration.configurations.findOne({service: 'meteor'});
|
||||
var config = ServiceConfiguration.configurations.findOne({service: 'meteorId'});
|
||||
if (!config)
|
||||
throw new ServiceConfiguration.ConfigError("Service not configured");
|
||||
|
||||
var response;
|
||||
try {
|
||||
response = HTTP.post(
|
||||
METEORID_URL + "/token", {
|
||||
METEORID_URL + "/oauth2/token", {
|
||||
params: {
|
||||
grant_type: "authorization_code",
|
||||
code: query.code,
|
||||
client_id: config.clientId,
|
||||
client_secret: config.secret,
|
||||
redirect_uri: Meteor.absoluteUrl("_oauth/meteor/close", {
|
||||
secure: true
|
||||
})
|
||||
redirect_uri: Meteor.absoluteUrl("_oauth/meteorId/close")
|
||||
}
|
||||
}
|
||||
);
|
||||
@@ -58,7 +57,8 @@ var getTokens = function (query) {
|
||||
if (! response.data || response.data.error) {
|
||||
// if the http response was a json object with an error attribute
|
||||
throw new Error("Failed to complete OAuth handshake with MeteorId. " +
|
||||
response.data.error);
|
||||
(response.data ? response.data.error :
|
||||
"No response data"));
|
||||
} else {
|
||||
return {
|
||||
accessToken: response.data.access_token,
|
||||
@@ -71,7 +71,7 @@ var getTokens = function (query) {
|
||||
var getIdentity = function (accessToken) {
|
||||
try {
|
||||
return HTTP.get(
|
||||
METEORID_URL + "/identity",
|
||||
METEORID_URL + "/api/v1/identity",
|
||||
{params: {access_token: accessToken}}).data;
|
||||
} catch (err) {
|
||||
throw _.extend(new Error("Failed to fetch identity from MeteorId. " + err.message),
|
||||
|
||||
Reference in New Issue
Block a user