Promise に基づいて Svelte アプリケーションを初期化する
P粉872101673
2023-09-01 09:35:33
<p>私は以前、認証と認可に Keycloak を使用する Vue アプリケーションをいくつか開発しました。 Vue アプリケーションの場合、Keycloak は、ユーザーが認証されたときにアプリケーションを初期化するだけで、認証されていないユーザーが Vue アプリケーションをロードできないようにするソリューションを提供します。 </p>
<pre class="brush:js;toolbar:false;">keycloak.init({ onLoad: initOptions.onLoad }).then((auth) => {
if (!auth) {
window.location.reload();
} それ以外 {
Vue.$log.info("認証済み");
newVue({
el: '#app',
render: h => h(App, { props: { keycloak: keycloak } })
})
}
...
</pre>
<p>現在、私は Svelte プロジェクトに取り組んでおり、同じアプローチを適用したいと考えています。 Vue で Keycloak を使用して行う方法と同様に、Promise に基づいて Svelte アプリケーションを初期化する方法はありますか? </p>
<p>解決策を探してみましたが、Svelte のこの問題に具体的に対処するものは見つかりませんでした。 </p>
<p>私にとっての最大の利点は、ユーザーが認証されていることを常に 100% 確信でき、必要に応じてバックエンドに送信するための JWT トークンに常にアクセスできることです。 </p>
Svelte を単独で使用する場合は、クライアント側コンポーネント API
を使用できます。 リーリーSvelteKit アプリケーションでは、src/routes/layout.js:
を使用してグローバル動作を追加できます。 リーリー リーリーdata.keycloak
(コード例では keycloak がクライアント認証であると想定しています)が定義されていない場合、認証は失敗します。 これにより、コンテンツの条件付きレンダリングが可能になります。