我是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;
}
这将重定向到指定的网址。
答案 0 :(得分:0)
您需要为此使用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);
}
希望有帮助。