vue资源根目录和授权的配置

Configuration for vue-resource root and authorization

本文关键字:配置 授权 资源 根目录 vue      更新时间:2023-10-04

我正在查看vue资源的以下文档,这些文档描述了如何设置配置:https://github.com/vuejs/vue-resource/blob/master/docs/config.md

它说用一个通用的授权值设置你的头:

 Vue.http.headers.common['Authorization'] = 'Basic YXBpOnBhc3N3b3Jk';

我猜这个"Basic YXBpOnBhc3b3Jk"值只是一个例子,但这个值是用来做什么的,应该用什么来代替它?

在同一页上,我还看到了"根"的设置:

 Vue.http.options.root = '/root';

我理解这是指网络应用程序的网络URL。然而,为什么vue资源需要我告诉它这个值?它用它做什么?

通过向Vue.http.headers.common对象添加头,您告诉vue resource在每个请求中添加这些头。

您还可以为每个请求添加标题:

http({
 url: '/someUrl', 
 method: 'GET',
 headers: {
   Authorization: 'Basic YXBpOnBhc3N3b3Jk'
 }
})

关于示例中Authorization标头的值:它是一个base64编码的字符串,包含用户名/密码。

window.atob('YXBpOnBhc3N3b3Jk') // => "api:password"

如果在使用vue资源时需要使用基本身份验证,则应提供自己的用户名/密码。

请注意,使用您的应用程序的每个人都可以查看用户名/密码。看见https://en.wikipedia.org/wiki/Basic_access_authentication了解有关基本验证的更多信息。

根属性可以是REST服务的主要端点。代替:

http({
 url: 'http://api.domain.com/v1/someRoute'
});

您可以使用设置根端点

Vue.http.options.root = 'http://api.domain.com/v1'
// will call http://api.domain.com/v1/someRoute
http({
 url: '/someRoute'
});

如果您想以全局方式设置标头身份验证,请使用inceptor

Vue.http.interceptors.push(function(request, next) {
    request.headers['Authorization'] = 'Basic abcd' //Base64
    request.headers['Accept'] = 'application/json'
    next()
});

并使用选项凭据:

Vue.http.options.credentials = true;