私はvue jsをフロントエンドとして使用していて、laravelで構築された私のappiからユーザを認証した後、その結果としてapiを認証するためのすべての要求を送るトークンを受け取っています。vue jsでのユーザーログイン後に認証トークンを保存するにはどうすればよいですか?
しかし、どのようにしてトークンをブラウザに保存する必要がありますか?
私はvue jsをフロントエンドとして使用していて、laravelで構築された私のappiからユーザを認証した後、その結果としてapiを認証するためのすべての要求を送るトークンを受け取っています。vue jsでのユーザーログイン後に認証トークンを保存するにはどうすればよいですか?
しかし、どのようにしてトークンをブラウザに保存する必要がありますか?
あなたの質問は非常に幅広いです。だから私は一般的な答えを出すつもりです。
localStorage
を使用してトークンを格納します。
localStorage.setItem('name','tokenValue'); // to store the token
localStorage.getItem('name'); // to getthe token value
単純なウェブ検索では、localStorageについて知っておくべきことがすべて得られます。お役に立てれば。
私がここで見つけたのは、localStorageがアシンクしていないためです。ログイン後、非常に悪いUXのページ全体をリフレッシュして、vueを使用してから開発したものをリフレッシュする必要があります。
私が推薦することができるのは、isteadはlocalForageです。これはassync localStorage以上のものです。それは約束に基づいており、構文はlocalStorageと非常に似ています。
例:
localforage.getItem('something', myCallback);
そのdocsで詳細情報。
トークンをバックエンドに送信するには、vue.http.interceptors
を使用する必要があります。
例:
Vue.http.interceptors.push((request, next) => {
request.headers['Authorization'] = auth.getAuthHeader()
next((response) => {
if(response.status == 401) {
auth.logout();
router.go('/login?unauthorized=1');
}
});
});
https://auth0.com/docs/security/store-tokens#web-storage-disadvantages 私がこのブログを読んでのlocalStorageは、XSS攻撃に対して脆弱であることを見出し。 –
トークンを格納するためにクッキーストレージを使用するか、クッキーがcsrf攻撃に対して脆弱であるため、これ以外に安全な方法がありますか?laravelをバックエンドとして使用しているので、laravelはcsrf保護を提供していると思いますか? –
誰かがあなたのローカルストレージからトークンを取得できる場合、彼はまた、クッキーを取得することができます。セキュリティのために、トークンを長く複雑に暗号化することができます。 –