cari
Rumahpangkalan dataRedisBagaimana untuk menyelesaikan masalah menyimpan token pengguna dalam Redis

    Redis menyimpan token pengguna

    Apabila mereka bentuk sistem yang serupa dengan e-dagang, keperluan biasa ialah setiap halaman perlu membawa maklumat pengguna yang dilog masuk .

    Terdapat dua penyelesaian biasa:

    • Gunakan kuki untuk menyimpan

    • Gunakan JWT untuk menyimpan

    Tetapi jika cache Redis digunakan dalam sistem, terdapat juga penyelesaian ketiga - cache token pengguna dalam Redis.

    Jana token dan simpan dalam Redis semasa log masuk

    //生成一个token对象,保存在redis中
    redisTemplate.opsForHash().put("token","user",user);

    Sediakan token apabila setiap halaman dijana

    //以JSON字符串形式返回token
    @RequestMapping(value = "/getToken",method = RequestMethod.GET)
    @ResponseBody
    public User getToken(){
        User user = (User) redisTemplate.opsForHash().get("token", "user");
        return user;
    }
    //发送ajax请求,获取token
    function get_token(){
        $.ajax({
            url:"getToken",
            type:"GET",
            dataType:"JSON",
            success:function(result){
                //将返回的用户信息保存在token中
                var token = result;
                //打印登录用户
                console.log(token);
                //打印登录用户的id
                console.log(token.id);
                document.getElementById('username').innerText = "用户名:"+token.username;
            }
        });
    }

    Padamkan token semasa log keluar

    rreee

    Redis Mengendalikan isu token

    java—Mengendalikan token berdasarkan redis  

    Pertama sekali, jelaskan bahawa token: token ialah cara memproses maklumat pengguna untuk bahagian hadapan dan belakang -Tamatkan interaksi selepas log masuk Terdapat dua jenis Kaedah, satu berdasarkan storan sesi, dan satu lagi berdasarkan storan redis. Artikel ini hanya membincangkan pemprosesan maklumat pengguna berdasarkan redis.   

    Untuk setiap interaksi maklumat selepas pengguna log masuk, jika maklumat pengguna perlu dihantar, terutamanya ID pengguna, dsb., adalah tidak bijak untuk menanyakan pangkalan data setiap kali Kami boleh Cipta ruang dalam redis untuk menyimpan maklumat pengguna, dan kemudian kami akan menggunakannya daripada redis setiap kali kami memerlukan maklumat pengguna.

    Mula-mula buat RedisUtil

    //注销
    @RequestMapping("/logout")
    public String logout(){
        redisTemplate.opsForHash().delete("token","user");
        return "/login";
    }

    Selepas mencipta RedisUtil, simpan nilai dalam redis Pada masa ini, perlu diingatkan bahawa kunci kami perlu dibincangkan dengan bahagian hadapan terlebih dahulu, yang nama medan untuk digunakan, dan hujung semasa Apabila meminta, kunci mesti dihantar dalam pengepala Nilai disulitkan dan dikembalikan ke hujung hadapan selepas log masuk pertama, kami perlu menyahsulit nilai pertama dan gunakan nilai sebagai kunci untuk mendapatkan maklumat pengguna.

    @Component
    
    public class RedisUtil {
    
        @Autowired
        private RedisTemplate redisTemplate;   //key-value是对象的
    
        //判断是否存在key
        public boolean hasKey(String key) {
            return redisTemplate.hasKey(key);
        }
    
        //从redis中获取值
        public Object get(String key) {
            return redisTemplate.opsForValue().get(key);
        }
    
        //向redis插入值
        public boolean set(final String key, Object value) {
            boolean result = false;
            try {
                redisTemplate.opsForValue().set(key, value);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        //向redis插入值带过期时间 单位:分钟
        public boolean set(final String key, Object value, long time) {
            boolean result = false;
            try {
                redisTemplate.opsForValue().set(key, value, time, TimeUnit.MINUTES);
                result = true;
            } catch (Exception e) {
                e.printStackTrace();
            }
            return result;
        }
    
        //redis删除值
        public boolean del(final String key) {
            return redisTemplate.delete(key);
        }
    
        //批量删除某个字段开始的key
        public long batchDel(String key) {
            Set<String> set = redisTemplate.keys(key + "*");
            return redisTemplate.delete(set);
        }
    
    }

    Apabila kita memerlukannya

    @Component
    public class UserUtil {
        @Autowired
        private RedisUtil redisUtil;
        @Autowired
        private HttpServletRequest request;
    
        /**
         * 后台管理的登录id
         *
         * @return
         */
        public JsonResult getUser() {
            String header = request.getHeader("#与前端约定的统一字段#");
            //解密
            String decrypt = DESUtil.decrypt(header);
            if (!redisUtil.hasKey(decrypt))return JsonResult.error("未登录");
            User user = null;
            try {
                user = (User) redisUtil.get(decrypt);
            } catch (Exception e) {
                e.printStackTrace();
            }
            if (decrypt == null) return JsonResult.error("权限不足");
            return JsonResult.success(user);
        }
    }

    Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah menyimpan token pengguna dalam Redis. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Kenyataan
    Artikel ini dikembalikan pada:亿速云. Jika ada pelanggaran, sila hubungi admin@php.cn Padam
    Redis: Meneroka Model dan Struktur DatanyaRedis: Meneroka Model dan Struktur DatanyaApr 16, 2025 am 12:09 AM

    Model dan struktur data Redis termasuk lima jenis utama: 1. String: Digunakan untuk menyimpan teks atau data binari, dan menyokong operasi atom. 2. Senarai: Koleksi Elemen yang Diarahkan, sesuai untuk beratur dan susunan. 3. Set: unsur -unsur unik yang tidak teratur ditetapkan, menyokong operasi set. 4. Diarahkan Set (SortedSet): Satu set elemen yang unik dengan skor, sesuai untuk kedudukan. 5. Jadual Hash (Hash): Koleksi pasangan nilai utama, sesuai untuk menyimpan objek.

    Redis: mengklasifikasikan pendekatan pangkalan datanyaRedis: mengklasifikasikan pendekatan pangkalan datanyaApr 15, 2025 am 12:06 AM

    Kaedah pangkalan data Redis termasuk pangkalan data dalam memori dan penyimpanan nilai utama. 1) Redis menyimpan data dalam ingatan, dan membaca dan menulis dengan cepat. 2) Ia menggunakan pasangan nilai utama untuk menyimpan data, menyokong struktur data kompleks seperti senarai, koleksi, jadual hash dan koleksi yang diperintahkan, sesuai untuk pangkalan data cache dan NoSQL.

    Mengapa menggunakan Redis? Faedah dan kelebihanMengapa menggunakan Redis? Faedah dan kelebihanApr 14, 2025 am 12:07 AM

    REDIS adalah penyelesaian pangkalan data yang kuat kerana ia menyediakan prestasi cepat, struktur data yang kaya, ketersediaan dan skalabilitas yang tinggi, keupayaan kegigihan, dan pelbagai sokongan ekosistem. 1) Prestasi yang sangat cepat: Data Redis disimpan dalam ingatan dan mempunyai kelajuan membaca dan menulis yang sangat cepat, sesuai untuk aplikasi kesesuaian yang tinggi dan rendah. 2) Struktur data yang kaya: Menyokong pelbagai jenis data, seperti senarai, koleksi, dan lain -lain, yang sesuai untuk pelbagai senario. 3) Ketersediaan dan skalabilitas yang tinggi: Menyokong replikasi master-hamba dan mod kluster untuk mencapai ketersediaan yang tinggi dan berskala mendatar. 4) Kegigihan dan keselamatan data: Ketekunan data dicapai melalui RDB dan AOF untuk memastikan integriti dan kebolehpercayaan data. 5) Sokongan ekosistem dan komuniti yang luas: dengan ekosistem yang besar dan komuniti aktif,

    Memahami NoSQL: Ciri Utama RedisMemahami NoSQL: Ciri Utama RedisApr 13, 2025 am 12:17 AM

    Ciri -ciri utama Redis termasuk kelajuan, fleksibiliti dan sokongan struktur data yang kaya. 1) Kelajuan: Redis adalah pangkalan data dalam memori, dan membaca dan menulis operasi hampir seketika, sesuai untuk pengurusan cache dan sesi. 2) Fleksibiliti: Menyokong pelbagai struktur data, seperti rentetan, senarai, koleksi, dan lain -lain, yang sesuai untuk pemprosesan data yang kompleks. 3) Sokongan Struktur Data: Menyediakan rentetan, senarai, koleksi, jadual hash, dan lain -lain, yang sesuai untuk keperluan perniagaan yang berbeza.

    Redis: Mengenal pasti fungsi utamanyaRedis: Mengenal pasti fungsi utamanyaApr 12, 2025 am 12:01 AM

    Fungsi teras Redis adalah sistem penyimpanan dan pemprosesan data berprestasi tinggi. 1) Akses data berkelajuan tinggi: Redis menyimpan data dalam memori dan menyediakan kelajuan membaca dan menulis tahap mikrosecond. 2) Struktur Data Kaya: Menyokong rentetan, senarai, koleksi, dan lain -lain, dan menyesuaikan diri dengan pelbagai senario aplikasi. 3) Kegigihan: Data berterusan ke cakera melalui RDB dan AOF. 4) Menerbitkan langganan: boleh digunakan dalam beratur mesej atau sistem komunikasi masa nyata.

    Redis: Panduan untuk struktur data popularRedis: Panduan untuk struktur data popularApr 11, 2025 am 12:04 AM

    Redis menyokong pelbagai struktur data, termasuk: 1. String, sesuai untuk menyimpan data nilai tunggal; 2. Senarai, sesuai untuk beratur dan susunan; 3. Tetapkan, digunakan untuk menyimpan data yang tidak duplikasi; 4. Diarahkan set, sesuai untuk senarai ranking dan beratur keutamaan; 5. Jadual hash, sesuai untuk menyimpan objek atau data berstruktur.

    Cara Melaksanakan Kaunter RedisCara Melaksanakan Kaunter RedisApr 10, 2025 pm 10:21 PM

    Kaunter Redis adalah satu mekanisme yang menggunakan penyimpanan pasangan nilai utama REDIS untuk melaksanakan operasi pengiraan, termasuk langkah-langkah berikut: mewujudkan kekunci kaunter, meningkatkan tuduhan, mengurangkan tuduhan, menetapkan semula, dan mendapatkan tuduhan. Kelebihan kaunter Redis termasuk kelajuan cepat, konkurensi tinggi, ketahanan dan kesederhanaan dan kemudahan penggunaan. Ia boleh digunakan dalam senario seperti pengiraan akses pengguna, penjejakan metrik masa nyata, skor permainan dan kedudukan, dan pengiraan pemprosesan pesanan.

    Cara menggunakan baris arahan redisCara menggunakan baris arahan redisApr 10, 2025 pm 10:18 PM

    Gunakan alat baris perintah redis (redis-cli) untuk mengurus dan mengendalikan redis melalui langkah-langkah berikut: Sambungkan ke pelayan, tentukan alamat dan port. Hantar arahan ke pelayan menggunakan nama arahan dan parameter. Gunakan arahan bantuan untuk melihat maklumat bantuan untuk arahan tertentu. Gunakan perintah berhenti untuk keluar dari alat baris arahan.

    See all articles

    Alat AI Hot

    Undresser.AI Undress

    Undresser.AI Undress

    Apl berkuasa AI untuk mencipta foto bogel yang realistik

    AI Clothes Remover

    AI Clothes Remover

    Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

    Undress AI Tool

    Undress AI Tool

    Gambar buka pakaian secara percuma

    Clothoff.io

    Clothoff.io

    Penyingkiran pakaian AI

    AI Hentai Generator

    AI Hentai Generator

    Menjana ai hentai secara percuma.

    Artikel Panas

    R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
    4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Tetapan grafik terbaik
    4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
    4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌
    R.E.P.O. Arahan sembang dan cara menggunakannya
    4 minggu yang laluBy尊渡假赌尊渡假赌尊渡假赌

    Alat panas

    DVWA

    DVWA

    Damn Vulnerable Web App (DVWA) ialah aplikasi web PHP/MySQL yang sangat terdedah. Matlamat utamanya adalah untuk menjadi bantuan bagi profesional keselamatan untuk menguji kemahiran dan alatan mereka dalam persekitaran undang-undang, untuk membantu pembangun web lebih memahami proses mengamankan aplikasi web, dan untuk membantu guru/pelajar mengajar/belajar dalam persekitaran bilik darjah Aplikasi web keselamatan. Matlamat DVWA adalah untuk mempraktikkan beberapa kelemahan web yang paling biasa melalui antara muka yang mudah dan mudah, dengan pelbagai tahap kesukaran. Sila ambil perhatian bahawa perisian ini

    SublimeText3 versi Cina

    SublimeText3 versi Cina

    Versi Cina, sangat mudah digunakan

    MantisBT

    MantisBT

    Mantis ialah alat pengesan kecacatan berasaskan web yang mudah digunakan yang direka untuk membantu dalam pengesanan kecacatan produk. Ia memerlukan PHP, MySQL dan pelayan web. Lihat perkhidmatan demo dan pengehosan kami.

    SublimeText3 versi Inggeris

    SublimeText3 versi Inggeris

    Disyorkan: Versi Win, menyokong gesaan kod!

    mPDF

    mPDF

    mPDF ialah perpustakaan PHP yang boleh menjana fail PDF daripada HTML yang dikodkan UTF-8. Pengarang asal, Ian Back, menulis mPDF untuk mengeluarkan fail PDF "dengan cepat" dari tapak webnya dan mengendalikan bahasa yang berbeza. Ia lebih perlahan dan menghasilkan fail yang lebih besar apabila menggunakan fon Unicode daripada skrip asal seperti HTML2FPDF, tetapi menyokong gaya CSS dsb. dan mempunyai banyak peningkatan. Menyokong hampir semua bahasa, termasuk RTL (Arab dan Ibrani) dan CJK (Cina, Jepun dan Korea). Menyokong elemen peringkat blok bersarang (seperti P, DIV),