mirror of
https://github.com/vector-im/element-web.git
synced 2024-11-16 05:04:57 +08:00
Implement logging in via password
This commit is contained in:
parent
f4dd88ed64
commit
b127c30436
@ -1,6 +1,7 @@
|
|||||||
"use strict";
|
"use strict";
|
||||||
var MatrixClientPeg = require("./MatrixClientPeg");
|
var MatrixClientPeg = require("./MatrixClientPeg");
|
||||||
var dis = require("./dispatcher");
|
var dis = require("./dispatcher");
|
||||||
|
var q = require("q");
|
||||||
|
|
||||||
class Register {
|
class Register {
|
||||||
|
|
||||||
@ -43,6 +44,46 @@ class Login {
|
|||||||
var flowStep = this._flows[this._currentFlowIndex];
|
var flowStep = this._flows[this._currentFlowIndex];
|
||||||
return flowStep ? flowStep.type : null;
|
return flowStep ? flowStep.type : null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
loginViaPassword(username, pass) {
|
||||||
|
var self = this;
|
||||||
|
var isEmail = username.indexOf("@") > 0;
|
||||||
|
var loginParams = {
|
||||||
|
password: pass
|
||||||
|
};
|
||||||
|
if (isEmail) {
|
||||||
|
loginParams.medium = 'email';
|
||||||
|
loginParams.address = username;
|
||||||
|
} else {
|
||||||
|
loginParams.user = username;
|
||||||
|
}
|
||||||
|
|
||||||
|
return MatrixClientPeg.get().login('m.login.password', loginParams).then(function(data) {
|
||||||
|
return q({
|
||||||
|
homeserverUrl: self._hsUrl,
|
||||||
|
identityServerUrl: self._isUrl,
|
||||||
|
userId: data.user_id,
|
||||||
|
accessToken: data.access_token
|
||||||
|
});
|
||||||
|
}, function(error) {
|
||||||
|
if (error.httpStatus == 400 && loginParams.medium) {
|
||||||
|
error.friendlyText = (
|
||||||
|
'This Home Server does not support login using email address.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else if (error.httpStatus === 403) {
|
||||||
|
error.friendlyText = (
|
||||||
|
'Incorrect username and/or password.'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
error.friendlyText = (
|
||||||
|
'There was a problem logging in. (HTTP ' + error.httpStatus + ")"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports.Register = Register;
|
module.exports.Register = Register;
|
||||||
|
@ -293,7 +293,12 @@ module.exports = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
onLoggedIn: function() {
|
onLoggedIn: function(credentials) {
|
||||||
|
console.log("onLoggedIn => %s", credentials.userId);
|
||||||
|
MatrixClientPeg.replaceUsingAccessToken(
|
||||||
|
credentials.homeserverUrl, credentials.identityServerUrl,
|
||||||
|
credentials.userId, credentials.accessToken
|
||||||
|
);
|
||||||
this.setState({
|
this.setState({
|
||||||
screen: undefined,
|
screen: undefined,
|
||||||
logged_in: true
|
logged_in: true
|
||||||
@ -307,7 +312,8 @@ module.exports = {
|
|||||||
var cli = MatrixClientPeg.get();
|
var cli = MatrixClientPeg.get();
|
||||||
var self = this;
|
var self = this;
|
||||||
cli.on('sync', function(state) {
|
cli.on('sync', function(state) {
|
||||||
if (self.sdkReady || state !== "PREPARED") { return; }
|
console.log("MatrixClient sync state => %s", state);
|
||||||
|
if (state !== "PREPARED") { return; }
|
||||||
self.sdkReady = true;
|
self.sdkReady = true;
|
||||||
|
|
||||||
if (self.starting_room_alias) {
|
if (self.starting_room_alias) {
|
||||||
|
Loading…
Reference in New Issue
Block a user