mfp.auth.service.ts
ファイル内のコードは次のとおりです。
performLogin(username: string, loginRequest: RequestModel<LoginRequestModel>): Observable<any> {
let mfpAuthResponse: any;
let userLoginChallengeHandler = WL.Client.createSecurityCheckChallengeHandler(this.securityCheckName);
(userLoginChallengeHandler as any).securityCheckName = this.securityCheckName;
console.log("this.securityCheckName is " + this.securityCheckName);
userLoginChallengeHandler.handleSuccess = (loginSuccess) => {
console.log("handleSuccess mfpAuthResponse is " + mfpAuthResponse);
if (!mfpAuthResponse) {
console.log("handle here");
mfpAuthResponse = {
id: loginSuccess.id,
accessToken: loginSuccess.user.attributes.access_token,
tokenType: loginSuccess.user.attributes.token_type,
expiresIn: loginSuccess.user.attributes.expires_in,
scope: loginSuccess.user.attributes.scope,
clientId: loginSuccess.user.attributes.client_id
};
}
};
console.log("line 41");
userLoginChallengeHandler.handleFailure = (loginError) => {
console.log("handleFailure " + loginError);
if (!mfpAuthResponse) {
mfpAuthResponse = loginError;
}
};
let authRequest = {
requestHeader: {
deviceId: this.sessionService.getDeviceId(),
channelTime: new Date().toISOString()
},
requestBody: loginRequest.requestBody
}
this.currentLoginGrantType = loginRequest.requestBody.grant_type;
console.log("ready to return ");
return from(new Promise(
(resolve, reject) => {
console.log("line 60");
WLAuthorizationManager.login(this.securityCheckName,
{
'authorization': environment.authorization,
'authRequest': JSON.stringify(authRequest),
'authCode': this.service.getHashMAC(authRequest, this.sessionService.getHashKey()),
'authUser': username
}
).then(
(res) => resolve(mfpAuthResponse),
(err) => reject(mfpAuthResponse)
);
}
));
console.log("line 79 end");
}
最初は、mfp 開発者キットを使用していますが、正常に動作し、アプリにログインしてランディング ページを表示できます。WLAuthorizationManager.login()
ログを入れると、 に移動しhandleSuccess
、ログインが成功したことを示す部分に移動することがわかります。これ以外に、リクエストがバックエンド サービスに入ることも確認できvalidateCredentials()
ますUserAuthentication.java
。仕組みがよくわかりませんが、これから勉強していきます。
次に、mfp 開発者キット サーバーを停止し、Installation Manager をインストールし、WebSphere Application Server Liberty Core をインストールしてから、適切な IBM Web サイトからダウンロードした MobileFirst Server をインストールします。私はこの Web サイトでこのベースを行っています: https://www.ibm.com/support/knowledgecenter/SSHS8R_8.0.0/com.ibm.worklight.installconfig.doc/install_config/t_install_mfp_server_cmdline_mode.html?view=embed#t_install_mfp_server__1
適切な複合機サーバーを使用している場合、アプリにログインできないことがわかりました。コンソール ログに基づいてconsole.log("line 60 " + this.securityCheckName);
、handleSuccess
. また、validateCredentials
今言及したバックエンド コードには至りませんでした。mfp サーバー ログにエラーはなく、バックエンド サービス API ログにもエラーはありません。Androidフォンの要素を検査するために使用するクロムにもエラーはありません。に何か問題があると思われWLAuthorizationManager.login()
ますが、エラー ログがなく、追跡して修正する方法がわかりません。
適切な mfp サーバーで構成する必要があるものがあると思われますか? コードが正常に動作しているため、mfp 開発者キット サーバーを使用している場合。(mfp 開発者キット サーバーは、インストールする 1 つのコマンドにすぎません。適切に構成するのに既に役立っていると思います。)
私は mfp と typescript を初めて使用しますが、数日間グーグルで調べた後でも、これを修正する方法がわかりません。これについて親切にアドバイスしてください。