typescript/kuzzle + elastic search

커즐(kuzzle) 활용 예시 2(로그인) v5.x

노래하는 마케터 2019. 2. 25. 17:53
728x90
// 커즐 로그인 유효성검사 후 정상 로그인되는 ts 코드입니다.

import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { Platform, AlertController, NavController } from '@ionic/angular';
import { Storage } from '@ionic/storage';
import Kuzzle from 'kuzzle-sdk/dist/kuzzle.js';
@Component({
selector: 'app-login',
templateUrl: './login.page.html',
styleUrls: ['./login.page.scss'],
})
export class LoginPage implements OnInit {
kuzzle: any;
userid: any;
userpwd: any;
pageNum: number;
username: any;
usernickname: any;
constructor(public router: Router, private platform: Platform, public alertCtrl: AlertController,
private navCtrl: NavController, private storage: Storage) {}
ngOnInit() {
this.kuzzle = new Kuzzle('192.168.0.26', this.kuzzle_callback.bind(this));
} // 커즐 로그인

kuzzle_callback (err, res) {
this.kuzzle.login('local', {username: 'kuzzle id', password: 'kuzzle password'}, 'login 유지 시간',
function(error, result) {
}
);
}


async login() {
if (this.userid === '' || this.userid === null || this.userpwd === '' || this.userpwd === null) {
const alertId = await this.alertCtrl.create({
header: '로그인',
message: '아이디 또는 패스워드를 확인해주세요.',
buttons: [
{
text: '확인',
}]
});
return await alertId.present();
}
this.kuzzle
.collection('collection_name', 'index_name')
.fetchDocument(this.userid, async function (error, result) {
if (this.userid === result.content.USER_ID && this.userpwd === result.content.USER_PASSWORD) {
const alertLogin = await this.alertCtrl.create({
header: '로그인',
message: this.userid + '님 로그인 되었습니다.',
buttons: [
{
text: '확인',
handler: data => {
this.storage.set('userid', result.content.USER_ID);
this.storage.set('userpwd', result.content.USER_PASSWORD);
this.storage.set('username', result.content.USER_NAME);
this.storage.set('usernickname', result.content.USER_NICKNAME);
this.afterLogin();
}
}]
});
return await alertLogin.present();
} else if (!(this.userid === result.content.USER_ID && this.userpwd === result.content.USER_PASSWORD) ||
result === undefined) {
const alertLogin = await this.alertCtrl.create({
header: '로그인 오류',
message: '아이디 또는 패스워드를 확인해주세요.',
buttons: [
{
text: '확인',
}]
});
return await alertLogin.present();
}
}.bind(this));
}
}

// 로그인 함수 선언한 버튼
<ion-button (click)="login()" color="button" expand="block" shape="round" size="large" class="bt">
로그인
</ion-button>



728x90