最新消息: 新版网站上线了!!!

nginx php cookie 替代 session 方案

https://github.com/openresty/encrypted-session-nginx-module

 

nginx.conf 配置

encrypted_session_key "abcdefghijklmnopqrstuvwxyz123456";
encrypted_session_iv "1234567812345678";
encrypted_session_expires 1d; 

加密

location /encrypt 

{

       set $raw  arg_session;        set_encrypt_session  $session $raw;        set_encode_base32   $session;

       add_header Set-Cookie 'user=$session';

}

访问 http://localhost/encrypt?session=name:quqiufeng@gmail.com,age:30

用户信息被加密后保存在Cookie['user'] 中

解密

 

location ~ \.php$ 

{

                try_files $uri =404;

                set $path_info $fastcgi_path_info;

                set $uid "";

                rewrite_by_lua '

                 local session  = ndk.set_var.set_decode_base32(ngx.var.cookie_user)

                 session           = ndk.set_var.set_decrypt_session(session)

                 ngx.var.uid     = session

                ';

              fastcgi_param QUERY_STRING "uid=$uid";

                fastcgi_pass   unix:/dev/shm/php.sock;

                include fastcgi.conf;

 }


在php中通过 $_SERVER['QUERY_STRING'] 拿到 uid

转载请注明:谷谷点程序 » nginx php cookie 替代 session 方案