Acesse a session de subdomínio do domínio principal

Eu tenho um aplicativo em mydomain.com. Eu quero que o usuário seja redirecionado para example.mydomain.com quando entrar no mydomain.com , no entanto, a session gerando com sucesso em um diretório em example.mydomain.com . Agora meu problema é depois do início do login, os usuários não conseguem fazer o login example.mydomain.com . Embora existam arquivos de session disponíveis.

Driver de session é arquivo (arquivo de configuração do mydoman.com)

$config['sess_driver'] = 'files'; $config['sess_cookie_name'] = 'ci_session'; $config['sess_expiration'] = 0; $config['sess_save_path'] = 'mydir/application/session_data'; $config['sess_match_ip'] = FALSE; $config['sess_time_to_update'] = 0; $config['sess_regenerate_destroy'] = FALSE; 

O meu aplicativo está funcionando bem no servidor local. Mas não está funcionando na produção.

Você também precisa configurar o cookie prefix cookie_domain e cookie prefix em seu arquivo de configuração como este

 $config['cookie_prefix'] = "mydomain_"; $config['cookie_domain'] = ".mydomain.com"; $config['cookie_path'] = "/"; $config['cookie_secure'] = FALSE; 

Você deve ter isso na ação de login:

session_set_cookie_params ($ cookieParams [“lifetime”], $ cookieParams [“caminho”], $ rootDomain, $ secure, $ httponly) ou algo parecido.

O ponto é como configurar o $ rootDomain. Por exemplo, você tem example.com como o domínio principal. E o que você precisa fazer é:

  1. configure-o para example.com se os cookies forem usados ​​apenas no domínio principal.
  2. configure-o para .example.com (com ponto) para tornar os cookies visíveis em todos os subdomínios.

Agora, sobre session_name () do domínio principal e secundário:

  1. Se forem diferentes, a session criada a partir do domínio principal é visível para sub domínio, mas não vice-versa. O logout apenas pode ser feito a partir do domínio principal, mas não do sub domínio.

  2. Se forem iguais, a session criada a partir do domínio principal é visível para sub domínio e vice-versa. O logout pode ser feito a partir do domínio principal ou sub.