簡體   English   中英

我應該在哪里將來自LoopBack的訪問令牌存儲在客戶端上以便將來訪問?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM