私のAngular SPAアプリは、Basic Authが必要なApacheサーバーによって提供されます。 アプリは基本認証(同じ資格情報)を必要とするREST APIを使用する必要がありますAngular SPAに埋め込むために、Apacheサーバーからの基本認証情報を取得しますか?
したがって、ユーザーが最初にページに移動するときに、サーバが角型アプリを送信する前に認証情報を提供する必要があります。しかし、ユーザーがアプリケーションを取得すると、REST APIにアクセスするために使用する資格情報は認識されません。 2番目のログインページをユーザーに提示する必要があります。そのため、アプリケーションはcookieまたはlocalStorageに認証情報を保存できます。
ユーザーが$ _SERVER ['PHP_AUTH_USER']と$ _SERVER ['PHP_AUTH_PASSWORD']をAngular SPAに「埋め込む」方法はありますか?ユーザーは2回ログインする必要はありませんか?
たとえば、何かのように:
- ユーザーがラッパー
- PHPラッパーが正確に、それはまた
<body>
<script>
localStorage.setItem("auth_token", "<?php base64_encode($_SERVER['PHP_AUTH_USER'].":".$_SERVER['PHP_AUTH_PASSWORD']); ?>");
</script>
<app-root></app-root>
...
</body>
- 角度は
getProject(): Promise<Project> {
let auth_token = localStorage.getItem('auth_token');
let headers = new Headers();
headers.append('Authorization', 'Basic ' + auth_token);
let options = new RequestOptions({headers: headers});
return this.http
.get(this.restApiUrl, options)
.toPromise()
.then(response => response.json().data as Project)
.catch(this.handleError);
}