Codeigniter OpenID ERR_SSL_PROTOCOL_ERROR

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

我正在尝试在我的 Linux Centos 9 服务器中实现 Jumbojett OpenID 身份验证。这是我的登录控制器(welcome.php)代码:

public function login_sso()
{
if (!$this->session->userdata('USERNIP')) {
            $oidc = new OpenIDConnectClient(
                $this->config->item('SSO_PROVIDER_URL'),
                $this->config->item('SSO_CLIENT_ID'),
                $this->config->item('SSO_CLIENT_SECRET')
            );
            $isAuthenticate = $oidc->authenticate();
            if ($isAuthenticate) {
                $user = $this->M_welcome->get_login_complete_sso($oidc->requestUserInfo('preferred_username'));
                [$akses, $akses_lengkap, $role_id] = $this->M_welcome->get_user_access($user[0]->PEGAWAIID,  $oidc->requestUserInfo('preferred_username'), $user[0]->JENISPEGAWAIID);
                $data_session = array(
                    'USERLOGIN' => $oidc->requestUserInfo('email'),
                    'SSO_ID_TOKEN' => $oidc->getIdToken()
                );

                $this->session->set_userdata($data_session);

                redirect('user/profil/');
            }
        }
}

这是我的 htaccess 代码:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
</IfModule>

<IfModule !mod_rewrite.c>
    # If we don't have mod_rewrite installed, all 404's
    # can be sent to index.php, and everything works as normal.
    # Submitted by: ElliotHaughin

    ErrorDocument 404 /index.php
</IfModule>

这是我在 config.php 中的 base_url(将其审查为 mysite.go.id):

$config['base_url'] = 'https://mysite.go.id/';

当我在浏览器中打开我的网络应用程序时,它会顺利进行,直到我使用我的用户凭据登录(用户名和密码)并重定向到一个页面:

This site can’t provide a secure connection mysite.go.id sent an invalid response.
ERR_SSL_PROTOCOL_ERROR

该页面的 URL 似乎指向

https://mysite.go.id:80/welcome/login_sso?state=6ea6c4c6f8538538621ed21fffa8e78c&session_state=1a223a56-9dba-447e-b6ed-9d79486420c9&code=18a981c1-d5a7-4ce2-8db7-4181244e4194.1a223a56-9dba-447e-b6ed-9d79486420c9.33e0c97f-f14d-4955-b0f1-863256cacd03
,我没有将重定向端口设置为 80,但看起来它重定向到端口 80,而 ssl 的默认端口应该是 443。我怀疑这是问题所在,但我不知道知道如何解决这个问题。在使用 OpenID 身份验证(使用本地数据库正常登录)之前,它工作顺利,我没有收到相关的 SSL 错误。但是当我使用 OpenID 身份验证时,我不断收到此错误,请帮我看看出了什么问题?

php linux ssl openid-connect openid
1个回答
0
投票
public function login_sso()
{
    if (!$this->session->userdata('USERNIP')) {
        $oidc = new OpenIDConnectClient(
            $this->config->item('SSO_PROVIDER_URL'),
            $this->config->item('SSO_CLIENT_ID'),
            $this->config->item('SSO_CLIENT_SECRET')
        );
        $isAuthenticate = $oidc->authenticate();
        if ($isAuthenticate) {
            $user = $this->M_welcome->get_login_complete_sso($oidc->requestUserInfo('preferred_username'));
            [$akses, $akses_lengkap, $role_id] = $this->M_welcome->get_user_access($user[0]->PEGAWAIID, $oidc->requestUserInfo('preferred_username'), $user[0]->JENISPEGAWAIID);
            $data_session = array(
                'USERLOGIN' => $oidc->requestUserInfo('email'),
                'SSO_ID_TOKEN' => $oidc->getIdToken()
            );

            $this->session->set_userdata($data_session);

            redirect('user/profil/');
        }
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.