【问题标题】:Code that behaves like response.redirect in express in loopback4?在loopback4中表现得像response.redirect的代码?
【发布时间】:2019-04-29 15:03:44
【问题描述】:

我是 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】:

    为此,您需要使用 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);
      }
    

    希望对您有所帮助。

    【讨论】:

    • 很高兴我能帮上忙。
    猜你喜欢
    • 2012-02-09
    • 2012-06-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-28
    • 1970-01-01
    • 1970-01-01
    • 2013-07-16
    相关资源
    最近更新 更多