[英]Where should I store access token from LoopBack on the client side for future access?
我正在嘗試使用客戶端的AngularJS和服務器端的LoopBack構建示例登錄視圖。
當用戶登錄時,將創建訪問令牌並在響應正文中將其返回。 我想將其用於對API服務器的下一個請求。 關於將訪問令牌存儲在何處的任何想法?
如果下次訪問總是在同一會話中,則將其作為實例變量存儲在angular服務中。
如果您需要令牌在會話之間持久保存,則可以使用本地存儲或cookie。
對於服務器端,將令牌持久保存到本地存儲中:
./server/model-config.json
"AccessToken": {
"dataSource": "local",
"public": false
},
有關如何配置存儲的信息,請參見此處 。
然后,為了使會話也可以持久保存在客戶端,我建議您進行express-session
./server/server.js
var session = require('express-session');
app.use(session({
secret: 'keyboard cat',
resave: false,
saveUninitialized: false,
cookie: { maxAge: 60000 } // in milliseconds, cookie will expire after one minute
}));
在客戶端服務器(HTML5客戶端+ REST API)架構中,令牌通常存儲在sessionStorage中:
// Store token
sessionStorage['token'] = token;
// Retrieve token
let token = sessionStorage['token'];
對於令牌,sessionStorage(在關閉選項卡時清除)可能是最好的。 也可以使用LocalStorage,但令牌將在瀏覽器關閉后繼續存在。 餅干是不得已的方法。
但是,如果您的客戶端是單頁應用程序(SPA),則可以考慮將令牌保留在全局變量中。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.