无法验证,在生产中未经授权

Unable to authenticate, unauthorized in production

我已经使用 api-platform、lexikJWTauthbundle 和 react-admin 构建了我的网站,这在本地开发中非常有用,但是当我将其推入生产环境时,我的管理界面登录总是 return 错误“401 错误凭据”并且令牌永远不会存储在本地。我不知道为什么,因为访问者页面显示了我存储在数据库中的所有内容。所以我假设连接是正确的。

我已经尝试用 "RewriteRule" "SetEnvIf" 更改 .htaccess ...这是我的代码:


//authProvier.js

import {AUTH_LOGIN, AUTH_LOGOUT, AUTH_CHECK} from 'react-admin';

export default (type, params) => {
    if (type === AUTH_LOGIN) {
        const {username, password} = params;
        const request = new Request('/admin/authentication_token', {
            method: 'POST',
            headers: new Headers({
                'Content-Type': 'application/json'
            }),
            body: JSON.stringify({
                username:
                    username,
                    password
            }),
        })
        return fetch(request)
            .then(response => {
                console.log(response)
                if (response.status < 200 || response.status >= 300) {
                    throw new Error(response.statusText);
                }
                return response.json();
            })
            .then(({token}) => {
                localStorage.setItem('token', token);
                return Promise.resolve()
            });
    }
    if (type === AUTH_LOGOUT) {
        localStorage.removeItem('token');
        return Promise.resolve();
    }
    if (type === AUTH_CHECK) {
        return localStorage.getItem('token') ? Promise.resolve() : Promise.reject();
    }
    return Promise.reject('Unknown method');
};
// config/security.yaml

security:
  role_hierarchy:
        ROLE_ADMIN: [ROLE_ADMIN]
  encoders:
    App\Entity\AdminUser:
      algorithm: argon2i


  providers:
    # used to reload user from session & other features (e.g. switch_user)
    app_user_provider:
      entity:
        class: App\Entity\AdminUser
        property: username

  firewalls:
    login:
      pattern: ^/admin/authentication_token
      provider: app_user_provider
      stateless: true
      anonymous: true
      json_login:
        check_path: /admin/authentication_token
        username_path: username
        password_path: password
        success_handler: lexik_jwt_authentication.handler.authentication_success
        failure_handler: lexik_jwt_authentication.handler.authentication_failure
    dev:
      pattern: ^/_(profiler|wdt)
      security: false
    api:
      pattern: ^/api/
      anonymous: true
      stateless: true
      guard:
        authenticators:
          - lexik_jwt_authentication.jwt_token_authenticator


  access_control:
    - { path: ^/admin, roles: ROLE_ADMIN}

当我console.log请求和响应时,header总是空的。 [![error401][1]][1]

我不知道问题是来自 "https" url 域还是 "Server API" 是 CGI/FastCGI 因为在本地它是 "http" 和 "Apache2.0 handler"。 我无法访问 httpd.conf 文件... 如果您有任何想法,请提前致谢。

/!\ 如果你遇到这个问题,请检查 Argon2i,我的网络托管商不支持它,所以我通过 bcrypt 进行了更改....