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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码行为类似于loopback4中的response.redirect吗?相关的知识,希望对你有一定的参考价值。

我是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);
  }

希望有所帮助。

以上是关于代码行为类似于loopback4中的response.redirect吗?的主要内容,如果未能解决你的问题,请参考以下文章

让 Enter 键的行为类似于 QTableWidget 中的 Tab

如何制作点“。”和下划线 '_' 的行为类似于 MongoDB 中 $text 索引中的空格

如何使复选框的行为类似于角度 6 中的单选按钮?

如何使 UIPageViewController 过渡行为类似于 IOS7 中的交互式弹出过渡样式

swift 使用Swift通用技术实现两个继承的路径类,其行为类似于Objective-C中的动态合成。

实现一个行为类似于 nginx 的 Undertow 反向代理