代码行为类似于loopback4中的response.redirect吗?

问题描述 投票:0回答:1

我是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。

express loopbackjs loopback
1个回答
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);
  }

希望有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.