使用AWS Cognito的NGNIX redirect_uri

如何解决使用AWS Cognito的NGNIX redirect_uri

我有一个在localhost:8088上运行的服务(Apache Superset)。我正在尝试使用NGINX作为Web服务器连接到AWS Cognito。

我的NGINX配置为/etc/ngnix/conf.d/superset.conf

    server {
    listen 80;
    server_name in.welcome.com;
    return 301 https://$host$request_uri;
}
server {
        server_name in.welcome.com;
        location / {
        proxy_set_header        Host $host;
        proxy_set_header        X-Real-IP $remote_addr;
        proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header        X-Forwarded-Proto $scheme;
        proxy_pass              http://localhost:8088;
        proxy_read_timeout  90;
        proxy_redirect https://in.welcome.com http://localhost:8088;
        }
    listen 443 ssl; # managed by Certbot
    ssl_certificate /etc/letsencrypt/live/in.welcome.com/fullchain.pem; # managed by Certbot
    ssl_certificate_key /etc/letsencrypt/live/in.welcome.com/privkey.pem; # managed by Certbot
    include /etc/letsencrypt/options-ssl-nginx.conf; # managed by Certbot
    ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem; # managed by Certbot
}

通过此配置,它将传递以下查询字符串参数:

    DEBUG:authlib.integrations.base_client.base_app:Saving authorize data: 
    {'redirect_uri': 'http://in.welcome.com/oauth-authorized/cognito','url': 'https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize? 
     response_type=code&client_id=12345&
     redirect_uri=http://in.welcome.com/oauthauthorized/Fcognito&scope=email+openid+profile&state=1234','state': '1234'}     

Cognito需要HTTPS URI,但是我的此配置正在发送:

'redirect_uri': 'http://in.welcome.com/oauth-authorized/cognito

代替:

'redirect_uri': 'https://in.welcome.com/oauth-authorized/cognito

解决方法

使用以下命令更新superset_config.py:

# Use all X-Forwarded headers when ENABLE_PROXY_FIX is True.
# When proxying to a different port,set "x_port" to 0 to avoid downstream issues. 
ENABLE_PROXY_FIX = True

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?