如何在我的应用程序中将范围设置为 http 请求?
How can I set the scope to a http request in my app?
我想知道如何在我的 Ionic 应用程序中将范围设置为 http 请求。我们正在使用 Node.JS 构建的后端 Hapi 框架。我在和一个团队一起工作,所以我在服务器端没有足够的知识,因为我正在开发 Ionic 应用程序。
此外,我正在为请求 header 设置一个 Bearer Token,它工作正常。下面是我的代码。
Ionic 应用程序 Http 请求:
let params = { eventId: this.event_id, bearerToken: '' };
let headers = new HttpHeaders();
headers.set('Content-Type', 'application/json');
headers.set('Authorization', `Bearer ${params.bearerToken}`);
headers.set('Scope', 'client');
console.log("Authorization bearer token: " + params.bearerToken);
//headers.append('scope', ['client']);
let options = { headers: headers, scope: 'client' };
return this.http
.get(this.baseUrl + `getEventShops?eventId=${params.eventId}`, options)
.pipe(map((response: any) => response)
, catchError(this.handleError));
Node.JS 路线片段:
exports.getEventShops = {
method: 'get',
path: '/event/getEventShops',
async handler(request) {
const user = request.auth.credentials.userSession;
let data = await shopController.getEventShops(request.query, user);
return data;
},
config: {
auth: {
strategy: 'JwtAuth',
scope: ['client']
},
......
这是我收到的错误代码:
{
"statusCode": 403,
"error": "Forbidden",
"message": "Insufficient scope"
}
我知道这个错误是因为我设置范围的方式不对。
这是必须在 Bearer 令牌中设置的东西,在服务器端,而不是在移动端。
我想知道如何在我的 Ionic 应用程序中将范围设置为 http 请求。我们正在使用 Node.JS 构建的后端 Hapi 框架。我在和一个团队一起工作,所以我在服务器端没有足够的知识,因为我正在开发 Ionic 应用程序。
此外,我正在为请求 header 设置一个 Bearer Token,它工作正常。下面是我的代码。
Ionic 应用程序 Http 请求:
let params = { eventId: this.event_id, bearerToken: '' };
let headers = new HttpHeaders();
headers.set('Content-Type', 'application/json');
headers.set('Authorization', `Bearer ${params.bearerToken}`);
headers.set('Scope', 'client');
console.log("Authorization bearer token: " + params.bearerToken);
//headers.append('scope', ['client']);
let options = { headers: headers, scope: 'client' };
return this.http
.get(this.baseUrl + `getEventShops?eventId=${params.eventId}`, options)
.pipe(map((response: any) => response)
, catchError(this.handleError));
Node.JS 路线片段:
exports.getEventShops = {
method: 'get',
path: '/event/getEventShops',
async handler(request) {
const user = request.auth.credentials.userSession;
let data = await shopController.getEventShops(request.query, user);
return data;
},
config: {
auth: {
strategy: 'JwtAuth',
scope: ['client']
},
......
这是我收到的错误代码:
{
"statusCode": 403,
"error": "Forbidden",
"message": "Insufficient scope"
}
我知道这个错误是因为我设置范围的方式不对。
这是必须在 Bearer 令牌中设置的东西,在服务器端,而不是在移动端。