私が開発しているモバイルアプリケーションのログイン認証を試みていますinAngular2、ionic2、Springセキュリティ: "code": "401"、 "message": "このリソースにアクセスするには完全な認証が必要です"
REST APIを使用したAngular2(final)、rc6およびionic2。
私は2つのAPIをした、
1は、他の成功した認証のユーザーのユーザーの詳細情報を取得することで、
をログインIDとパスワードを送信するためです。
私はこの目的のために春のセキュリティを使用しています。
"code": "401"、 "message": "このリソースにアクセスするには完全な認証が必要です"というエラーが表示されます。
私は、これに基づいてstackoverflowに多くの投稿があることを知っていますが、廃止されているか、typescript.Alsoで書かれていないので、私はそれらを使用することはできません。私は2回通話しなければならない。私はどこが間違っているのか分かりません。私はこれが私にとっては非常に単純なエラーであるはずです。
これはlogin.tsページで、ユーザーから入力したパラメータを取得します。その後、私は2つのhttpは、ユーザーの詳細情報を取得するにはパラメータ
- を呼び出します。
ユーザーが認証され、コードが200になると「コード」が生成されます。私のプログラムはここまでうまく動作しますが、このエラーが発生するため、ユーザーの詳細を取得できません。
import { Component } from '@angular/core';
import { NavController, NavParams } from 'ionic-angular';
import { FormBuilder, FormGroup, Validators, AbstractControl } from '@angular/forms';
import { checkFirstCharacterValidator } from '../Validators/customvalidator';
import { EmailValidator } from '../Validators/emailvalidator';
import { Http, Headers, Response, RequestOptions, BaseRequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/do';
import 'rxjs/add/operator/catch';
declare var sha256_digest: any;
@Component({
selector: 'page-login',
templateUrl: 'login.html'
})
export class LoginPage
{
loginform : FormGroup;
constructor(public navCtrl: NavController, public navParams: NavParams, fb: FormBuilder,public http:Http)
{
this.loginform = fb.group
({
'email' : [null, Validators.compose([Validators.required, Validators.minLength(5), Validators.maxLength(40),checkFirstCharacterValidator(/^\d/),
EmailValidator.isValidMailFormat])],
'password': [null, Validators.compose([Validators.required, Validators.maxLength(25),])]
})
}
private extractData(res: Response) {
let body = res.json();
console.log(body);
return body || {};
}
submitForm(value: any):void
{
console.log('Form submited!');
value.password = sha256_digest(value.password);
console.log(value);
var userdata =
{
login:value.email,
password:value.password
};
let headers = new Headers({'Content-Type': 'application/json'});
headers.append('Authorization','Basic ');
let options = new RequestOptions({headers: headers});
this.http.post('dummy/api/login',userdata,options).map(res=>res.json()).subscribe(resp=>
{
console.log(resp.data);
if(resp.code === 200)
{
return this.http.get('dummy/api/auth/registration/success',options)
.subscribe(resp=>{
console.log(resp);
});
}
},
err=>{console.log(err);},
()=>{});
}
ionViewDidLoad() {
console.log('ionViewDidLoad LoginPage');
}
}
私もヘッダのこのバージョンを試してみました:
Spring-Security-Oauth2: Full authentication is required to access this resource
401 full authentication is required to access this resource:
let headers = new Headers();
headers.append("Authorization", "Basic " + btoa(userdata.login + ":" + userdata.password));
headers.append("Content-Type", "application/x-www-form-urlencoded");
親切に私はこのerror.Theseを是正助けるが、私がから試したすべての源であります
こんにちは!この問題を解決できましたか? –
いいえ、できませんでした。どんな助けもありがとうございます。ありがとう:) –
私は私のために働いた解決策を書いた。 –