我建議那些要求,my-app
元素下創建一個my-session
元素處理驗證和一個my-pages
元素來管理應用程序本身。在my-session
之內,如果需要的話,我取消隱藏登錄元素(我允許用戶使用經過身份驗證的cookie在未登錄的情況下訪問應用程序)。
我my-app
的輪廓是這樣
<app-header-layout>
<app-header
fixed
effects="waterfall">
<app-toolbar>
...
</app-toolbar>
</app-header>
<my-session id="session" user="{{user}}"></my-session>
<my-pages
id="pages"
user="[[user]]"
unresolved
hidden="[[!isLoggedOn]]" >APPLICATION LOADING</my-pages>
</app-header-layout>
my-session
然後有一個my-login
元素將包含在頁面
這中間集中在一個paper-card
登錄表單用
<dom-module id="my-session">
<template>
<style>
[hidden] {
display: none!important;
}
</style>
<iron-ajax
id="validateuser"
url="/api/validate_user"
handle-as="json"
method="POST"
body="{}"
content-type="application/json"
on-response="_validated"></iron-ajax>
<iron-ajax
id="logoff"
url="/logoff"
body="{}"
handle-as="json"
method = "POST"
content-type="application/json"></iron-ajax>
<my-waiting waiting="[[waiting]]"></my-waiting>
<my-logon user="{{user}}" hidden="[[!needsLogon]]"></my-logon>
</template>
<script>...</script>
</dom-module>
iron-ajax請求將驗證用戶cookie(我仍然要求服務器驗證它,因爲它包含加密的令牌)並記錄用戶。這一切都在JavaScript中處理,我不顯示(爲簡單起見)。
如果您沒有將「'''''元素添加到主體只是空白,那麼您可以在驗證成功時動態創建它 –
adaliszk