changes on Rocket Chat authentication

This commit is contained in:
tiago.kayaya
2021-06-04 11:37:56 +01:00
parent 716562e357
commit 19f270f425
6 changed files with 55 additions and 37 deletions
+39 -5
View File
@@ -7,6 +7,7 @@ import { environment } from 'src/environments/environment';
import { HttpService } from './http.service';
import { BehaviorSubject, Observable } from 'rxjs';
import { AuthConnstants } from '../config/auth-constants';
import { AlertController } from '@ionic/angular';
@Injectable({
providedIn: 'root'
@@ -16,13 +17,15 @@ export class AuthService {
userId$ = new BehaviorSubject<any>('');
headers: HttpHeaders;
public ValidatedUser:User;
public ValidatedUserChat:any;
opts:any;
constructor(
private http: HttpClient,
private httpService: HttpService,
private storageService:StorageService,
private router:Router
private router:Router,
public alertController: AlertController,
) {
this.headers = new HttpHeaders();
@@ -30,6 +33,9 @@ export class AuthService {
if (localStorage.getItem("user") != null) {
this.ValidatedUser = JSON.parse(localStorage.getItem('user'));
}
if (localStorage.getItem("userChat") != null) {
this.ValidatedUserChat = JSON.parse(localStorage.getItem('userChat'));
}
}
@@ -75,12 +81,30 @@ export class AuthService {
}
//Login to rocketChat server
loginChat(postData: any):Observable<any> {
console.log(postData);
return this.httpService.post('login', postData);
async loginChat(user: UserForm): Promise<boolean> {
let postData = {
"user": user.username,
"password": user.password,
}
let responseChat = await this.httpService.post('login', postData).toPromise();
if(responseChat){
console.log('Login to Rocket chat OK');
this.ValidatedUserChat = responseChat;
localStorage.setItem('userChat', JSON.stringify(responseChat));
this.storageService.store(AuthConnstants.AUTH, responseChat);
return true;
}
else{
console.log('Network error');
this.presentAlert('Network error');
return false;
}
}
//Get user data from RocketChat | global object
getUserData(){
this.storageService.get(AuthConnstants.AUTH).then(res=>{
@@ -108,4 +132,14 @@ export class AuthService {
}) */
}
async presentAlert(message: string) {
const alert = await this.alertController.create({
cssClass: 'my-custom-class',
header: 'Mensagem do sistema',
message: message,
buttons: ['OK']
});
await alert.present();
}
}
+4 -25
View File
@@ -22,7 +22,7 @@ export class ChatService {
SERVER_URL = 'wss://www.tabularium.pt/websocket';
public messages: Subject<any>;
loggedUserChat:any;
constructor(
private http:HttpClient,
@@ -33,11 +33,10 @@ export class ChatService {
private wsService: WebsocketService,
)
{
this.loggedUserChat = authService.ValidatedUserChat;
this.headers = new HttpHeaders();
this.authService.userData$.subscribe((res:any)=>{
this.headers = this.headers.set('X-User-Id', res.userId);
this.headers = this.headers.set('X-Auth-Token', res.authToken);
});
this.headers = this.headers.set('X-User-Id', this.loggedUserChat['data'].userId);
this.headers = this.headers.set('X-Auth-Token', this.loggedUserChat['data'].authToken);
this.options = {
headers: this.headers,
};
@@ -48,25 +47,6 @@ export class ChatService {
return (JSON.stringify(data));
});
}
/* getUser(){
this.storage.get('user').then((val) => {
let user = JSON.parse(unescape(atob(val))).data;
this.headers = this.headers.set('X-User-Id', user.userId);
this.headers = this.headers.set('X-Auth-Token', user.authToken);
this.options1 = {
headers: this.headers,
};
console.log(this.options1);
this.http.get(environment.apiChatUrl+'users.presence', this.options1).subscribe(res => {
console.log(res);
});
});
} */
getAllChannels(){
return this.http.get(environment.apiChatUrl+'channels.list', this.options);
@@ -108,7 +88,6 @@ export class ChatService {
//Load messages from roomId
getAllDirectMessages(){
console.log(this.options);
return this.http.get(environment.apiChatUrl+'im.list', this.options);
}
//Load messages from roomId