프론트 엔드로 이온 애플리케이션에서 쿠키 인증을 생성하려고하는데, Wordpress를 백엔드로 사용하려고합니다. (this JSON API USER 플러그인 사용) . ?Ionic2/Angular 2 - Wordpress는 쿠키 인증을 앱에서 생성합니다.
그럼 쿠키 생성/제어기 = 사용자 & 방법 = generate_auth_cookie MYURLBASE/API/get_nonce : MYURLBASE/API/사용자/generate_auth_cookie/난스를 = 375034fjwfn39u8 & 자명 =
첫 번째 단계는 논스를 생성하는 john & passsword = PASSWORD-HERE
나는 nonce를 얻을 수 있지만 요청을 처리하는 서비스를 만드는 데 문제가 있습니다. 마지막으로
import {Page, NavController, Alert} from 'ionic-angular';
import { FORM_DIRECTIVES, FormBuilder, ControlGroup, Validators, AbstractControl, Control } from 'angular2/common';
import { Http, Headers, RequestOptions, Request, RequestMethod, Response } from 'angular2/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/Rx';
import {LoginService} from './login.service';
import {WooPage} from '../woo/woo';
@Page({
templateUrl: 'build/pages/ecommerce/login/login.html',
providers:[LoginService],
})
export class LoginPage {
loginForm: ControlGroup;
username: AbstractControl;
password: AbstractControl;
response;
constructor(private loginService:LoginService, public nav: NavController,
fb: FormBuilder){
this.loginForm = fb.group({
username: ['', Validators.required],
password: ['', Validators.required]
});
this.username = this.loginForm.controls['username'],
this.password = this.loginForm.controls['password']
}
// For test purposes
getNonce() {
this.loginService.getNonce()
.subscribe(
response => this.response = response,
error => console.log(error));
}
// For test purposes
generateCookie() {
this.loginService.generateCookie(this.loginService.getNonce())
.subscribe(
response => this.response = response,
error => console.log(error));
}
login(
username:string,
password:string) :void {
this.loginService.login(
username = this.username.value,
password = this.password.value
)
.subscribe(
response => this.response = response,
error => console.log(error)
);
}
}
그리고 내 login.service.ts :
import {Injectable,Inject} from 'angular2/core';
import {Http,Headers,Response} from 'angular2/http';
import {Observable} from 'rxjs/Observable';
import {NavController, Alert} from 'ionic-angular';
@Injectable()
export class LoginService {
private nonceUrl = 'https://MYURL/api/get_nonce/?controller=user&method=generate_auth_cookie'
private cookieUrlBase = 'https://MYURL/api/user/generate_auth_cookie/?nonce='
constructor(private http:Http) {}
getNonce() {
let nonce = this.http.get(this.nonceUrl).map(res => res.json().nonce);
return nonce;
}
generateCookie(nonce) {
return this.http.get(this.cookieUrlBase+nonce+'&username='+'chuckNorris'+'&password='+'chuckchuck')
}
// TODO: login(
// username: string,
// password: string):Observable<any> {
//
// const body = JSON.stringify(username + password);
// let headers = new Headers();
//
// headers.append('Content-Type', 'application/x-www-form-urlencoded');
// return this.http.post(, body, {
// headers : headers
// }).map(res => res.json());
// }
}
I를 여기
내 login.html입니다 :<form [ngFormModel]="loginForm" (submit)="login(username, password)" style="padding-top: 50px">
<ion-list>
<ion-item>
<ion-label stacked-label>Nom d'utilisateur ou Email</ion-label>
<ion-input type="text" [(ngFormControl)]="username" value=""></ion-input>
</ion-item>
<ion-item>
<ion-label stacked-label>Mot de passe</ion-label>
<ion-input type="password" [(ngFormControl)]="password" value=""></ion-input>
</ion-item>
</ion-list>
<div>
<button block type="submit">Connexion</button>
</div>
</form>
이 내 login.ts입니다 generateCookie 함수를 호출하면 다음 URL이 생성됩니다. https://MYURL/api/user/generate_auth_cookie/?nonce=[object%20Object]&username=chuckNorris&password=chuckchuck
개체가 아닌 nonce 값을 전달하려면 어떻게해야합니까? 로그인 인증을 얻는 더 좋은 방법이 있습니까?
도움을 주셔서 감사합니다. 저는 여기 꽤 분실되어 있습니다 ... 음과.
어떻게 Apache Cordova InAppBrowser를 사용합니까? 'window.open (url, ...); ' – Jagannath
제안을 주셔서 감사합니다. 나는 그것을 살펴볼 것입니다. 왜 nonce가 객체인지, 값이 아닌지 이해할 수 없습니다 ... – Yin
http://stackoverflow.com/a/34889586/124797 .. 링크에는 InAppBrowser를 사용하기위한 코드가 있습니다. ionic2의 경우 대신'window.open (...) '이라고 말해야합니다. – Jagannath