1
我需要使用內部用戶管理系統來驗證我的用戶。這個系統還擁有用戶對組和角色以及租戶的成員身份,這在授權時最有用。添加登錄提供商到流星
我查看了accounts-persona的代碼,但它不適用於我。因此我推斷我做錯了什麼。
在服務器上有一個新的LoginHandler:
Meteor.startup(function() {
var config = Accounts.loginServiceConfiguration.findOne({service: 'sertal'});
if (!config) {
Accounts.loginServiceConfiguration.insert({ service: 'sertal' });
}
});
Accounts.registerLoginHandler(function (options) {
if (!options.sertal && !options.assertion)
return undefined; // don't handle
var url = "http://dev.sertal.ch/checkCredential";
var request = {
params: {
uname: options.email,
pword: options.password
}
};
var result = Meteor.http.get(url, request);
if (result.statusCode !== 200) {
throw new Meteor.Error(Accounts.LoginCancelledError.numericError, 'Sertal Login Failed');
} else {
var user = result.data.userrec;
user.groups = result.data.grprec;
user.id = user._id;
return Accounts.updateOrCreateUserFromExternalService('sertal', user);
}
});
在我使用此代碼登錄按鈕後,客戶端已被按下:
Accounts.callLoginMethod({
methodName: 'login',
methodArguments: {sertal: true,
email: $('#sertal-email').val(),
password: $('#sertal-password').val(),
resume: false
},
userCallback: function (error) {
if (error) {
console.log("error: " + error);
} else {
$("#sertalLoginFormDiv").dropdown('toggle');
}
}
});
但它不會觸發LoginHandler。必須有一些缺失,但我無法弄清楚。
我找不到關於此主題的任何文檔。答案也可能是指出解釋過程的一些文件。
對不起,我無法幫助我正在學習流星,這方面的任何消息?你有沒有設法添加一項新服務? – jptsetung
我沒有進一步調查。我最終創建了一個帶有生成密碼的遠程用戶的本地Meteor用戶(用戶對象的ID)。這仍然是我要做的事情。也許它在流星書中 –