我是loopback4的新手。我正在开发代码以获取Google访问令牌。如何实现Express重定向等功能?
我已经成功地用express实现了它。现在我想将它实现为loopback4的一个独特功能。
基于Express的代码(已经工作)
router.get('/googleiab/token/request', function (req, res) {
let oauth2Client = new OAuth2(client_id, client_secret, redirect_uri);
let url = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: scopes,
});
res.redirect(url);
});
环回4
@get('/googleiab/token/request')
tockenRequest(): void {
let oauth2Client = new OAuth2(client_id, client_secret, redirect_uri);
let url = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: scopes,
});
this.redirect('/googleiab/token/request', url, 301); //res.redirect(url);
//return url;
}
这将重定向到指定的Url。
您需要为此目的使用RequestContext。
见下文。
将此注入添加到构造函数中
@inject(RestBindings.Http.CONTEXT)
protected reqContext: RequestContext
然后在你的tockenRequest方法中执行此操作。
@get('/googleiab/token/request')
tockenRequest(): void {
let oauth2Client = new OAuth2(client_id, client_secret, redirect_uri);
let url = oauth2Client.generateAuthUrl({
access_type: 'offline',
scope: scopes,
});
this.reqContext.response.redirect(url);
}
希望有所帮助。