You've already forked matrix-js-sdk
mirror of
https://github.com/matrix-org/matrix-js-sdk.git
synced 2025-11-28 05:03:59 +03:00
Move login and register methods into base-apis
login no longer relies on fields within MatrixClient, so we can move it down to BaseApis
This commit is contained in:
130
lib/base-apis.js
130
lib/base-apis.js
@@ -104,6 +104,66 @@ MatrixBaseApis.prototype.isLoggedIn = function() {
|
||||
// Registration/Login operations
|
||||
// =============================
|
||||
|
||||
/**
|
||||
* @param {string} username
|
||||
* @param {string} password
|
||||
* @param {string} sessionId
|
||||
* @param {Object} auth
|
||||
* @param {boolean} bindEmail
|
||||
* @param {string} guestAccessToken
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.register = function(
|
||||
username, password,
|
||||
sessionId, auth, bindEmail, guestAccessToken,
|
||||
callback
|
||||
) {
|
||||
if (auth === undefined) { auth = {}; }
|
||||
if (sessionId) { auth.session = sessionId; }
|
||||
|
||||
var params = {
|
||||
auth: auth
|
||||
};
|
||||
if (username !== undefined) { params.username = username; }
|
||||
if (password !== undefined) { params.password = password; }
|
||||
if (bindEmail !== undefined) { params.bind_email = bindEmail; }
|
||||
if (guestAccessToken !== undefined) { params.guest_access_token = guestAccessToken; }
|
||||
|
||||
return this.registerRequest(params, undefined, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* Register a guest account.
|
||||
* @param {Object=} opts Registration options
|
||||
* @param {Object} opts.body JSON HTTP body to provide.
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.registerGuest = function(opts, callback) {
|
||||
opts = opts || {};
|
||||
opts.body = opts.body || {};
|
||||
return this.registerRequest(opts.body, "guest", callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} data parameters for registration request
|
||||
* @param {string=} kind type of user to register. may be "guest"
|
||||
* @param {module:client.callback=} callback
|
||||
* @return {module:client.Promise} Resolves: to the /register response
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.registerRequest = function(data, kind, callback) {
|
||||
var params = {};
|
||||
if (kind) { params.kind = kind; }
|
||||
|
||||
return this._http.request(
|
||||
callback, "POST", "/register", params, data
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
@@ -113,6 +173,76 @@ MatrixBaseApis.prototype.loginFlows = function(callback) {
|
||||
return this._http.request(callback, "GET", "/login");
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} loginType
|
||||
* @param {Object} data
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.login = function(loginType, data, callback) {
|
||||
var login_data = {
|
||||
type: loginType,
|
||||
};
|
||||
|
||||
// merge data into login_data
|
||||
login_data.extend(data);
|
||||
|
||||
return this._http.authedRequest(
|
||||
callback, "POST", "/login", undefined, login_data
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} user
|
||||
* @param {string} password
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.loginWithPassword = function(user, password, callback) {
|
||||
return this.login("m.login.password", {
|
||||
user: user,
|
||||
password: password
|
||||
}, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} relayState URL Callback after SAML2 Authentication
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.loginWithSAML2 = function(relayState, callback) {
|
||||
return this.login("m.login.saml2", {
|
||||
relay_state: relayState
|
||||
}, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} redirectUrl The URL to redirect to after the HS
|
||||
* authenticates with CAS.
|
||||
* @return {string} The HS URL to hit to begin the CAS login process.
|
||||
*/
|
||||
MatrixBaseApis.prototype.getCasLoginUrl = function(redirectUrl) {
|
||||
return this._http.getUrl("/login/cas/redirect", {
|
||||
"redirectUrl": redirectUrl
|
||||
}, httpApi.PREFIX_UNSTABLE);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} token Login token previously received from homeserver
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixBaseApis.prototype.loginWithToken = function(token, callback) {
|
||||
return this.login("m.login.token", {
|
||||
token: token
|
||||
}, callback);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Logs out the current session.
|
||||
* Obviously, further calls that require authorisation should fail after this
|
||||
|
||||
130
lib/client.js
130
lib/client.js
@@ -1733,43 +1733,6 @@ MatrixClient.prototype.paginateEventTimeline = function(eventTimeline, opts) {
|
||||
return promise;
|
||||
};
|
||||
|
||||
// Registration/Login operations
|
||||
// =============================
|
||||
|
||||
/**
|
||||
* @param {string} loginType
|
||||
* @param {Object} data
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.login = function(loginType, data, callback) {
|
||||
var login_data = {
|
||||
type: loginType,
|
||||
};
|
||||
|
||||
// merge data into login_data
|
||||
login_data.extend(data);
|
||||
|
||||
return this._http.authedRequest(
|
||||
callback, "POST", "/login", undefined, login_data
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* Register a guest account.
|
||||
* @param {Object=} opts Registration options
|
||||
* @param {Object} opts.body JSON HTTP body to provide.
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.registerGuest = function(opts, callback) {
|
||||
opts = opts || {};
|
||||
opts.body = opts.body || {};
|
||||
return this.registerRequest(opts.body, "guest", callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* Peek into a room and receive updates about the room. This only works if the
|
||||
* history visibility for the room is world_readable.
|
||||
@@ -1823,49 +1786,8 @@ MatrixClient.prototype.setGuestAccess = function(roomId, opts) {
|
||||
return q.all(readPromise, writePromise);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} username
|
||||
* @param {string} password
|
||||
* @param {string} sessionId
|
||||
* @param {Object} auth
|
||||
* @param {boolean} bindEmail
|
||||
* @param {string} guestAccessToken
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.register = function(username, password,
|
||||
sessionId, auth, bindEmail, guestAccessToken,
|
||||
callback) {
|
||||
if (auth === undefined) { auth = {}; }
|
||||
if (sessionId) { auth.session = sessionId; }
|
||||
|
||||
var params = {
|
||||
auth: auth
|
||||
};
|
||||
if (username !== undefined) { params.username = username; }
|
||||
if (password !== undefined) { params.password = password; }
|
||||
if (bindEmail !== undefined) { params.bind_email = bindEmail; }
|
||||
if (guestAccessToken !== undefined) { params.guest_access_token = guestAccessToken; }
|
||||
|
||||
return this.registerRequest(params, undefined, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {Object} data parameters for registration request
|
||||
* @param {string=} kind type of user to register. may be "guest"
|
||||
* @param {module:client.callback=} callback
|
||||
* @return {module:client.Promise} Resolves: to the /register response
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.registerRequest = function(data, kind, callback) {
|
||||
var params = {};
|
||||
if (kind) { params.kind = kind; }
|
||||
|
||||
return this._http.request(
|
||||
callback, "POST", "/register", params, data
|
||||
);
|
||||
};
|
||||
// Registration/Login operations
|
||||
// =============================
|
||||
|
||||
/**
|
||||
* Requests an email verification token for the purposes of registration.
|
||||
@@ -1983,54 +1905,6 @@ MatrixClient.prototype._requestTokenFromEndpoint = function(endpoint,
|
||||
);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} user
|
||||
* @param {string} password
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.loginWithPassword = function(user, password, callback) {
|
||||
return this.login("m.login.password", {
|
||||
user: user,
|
||||
password: password
|
||||
}, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} relayState URL Callback after SAML2 Authentication
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.loginWithSAML2 = function(relayState, callback) {
|
||||
return this.login("m.login.saml2", {
|
||||
relay_state: relayState
|
||||
}, callback);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} redirectUrl The URL to redirect to after the HS
|
||||
* authenticates with CAS.
|
||||
* @return {string} The HS URL to hit to begin the CAS login process.
|
||||
*/
|
||||
MatrixClient.prototype.getCasLoginUrl = function(redirectUrl) {
|
||||
return this._http.getUrl("/login/cas/redirect", {
|
||||
"redirectUrl": redirectUrl
|
||||
}, httpApi.PREFIX_UNSTABLE);
|
||||
};
|
||||
|
||||
/**
|
||||
* @param {string} token Login token previously received from homeserver
|
||||
* @param {module:client.callback} callback Optional.
|
||||
* @return {module:client.Promise} Resolves: TODO
|
||||
* @return {module:http-api.MatrixError} Rejects: with an error response.
|
||||
*/
|
||||
MatrixClient.prototype.loginWithToken = function(token, callback) {
|
||||
return this.login("m.login.token", {
|
||||
token: token
|
||||
}, callback);
|
||||
};
|
||||
|
||||
// Push operations
|
||||
// ===============
|
||||
|
||||
Reference in New Issue
Block a user