spring - JAVA WEB 授权问题请教。
PHP中文网
PHP中文网 2017-04-18 09:56:35
0
6
441

编写好了JAVA WEB,想像桌面软件那样,第一次使用的时候需要输入一个key,验证通过则能使用整个系统,否则就无法访问任何页面。

  • key可以包含授权使用时长,比如1个月。

  • 没有输入正确的key,则无论访问什么url路径,都会跳转到输入key的页面(和用户的登录页面一样)

请问这该怎么实现?

PHP中文网
PHP中文网

认证0级讲师

membalas semua(6)
阿神

Ringkasnya, terdapat dua jenis

  1. Jana kunci berdasarkan mesin pihak lain.

    Hanya laksanakan kaedah penyulitan sendiri. (Algoritma seperti algoritma ringkasan yang tidak memerlukan penyelesaian songsang adalah mencukupi)
    Kemudian dapatkan perkakasan utama komputer di mana projek itu digunakan mac地址, seperti papan induk, kad rangkaian, cakera keras, dsb., dan gunakan data ini untuk mengira nilai dalam projek , jika ia sama dengan kunci yang diisi oleh pengguna, projek rasmi akan dimulakan Jika ia berbeza, ia akan menggesa anda untuk mengisi kunci.
    Mengenai cara mendapatkan maklumat perkakasan pihak lain, terpulang kepada anda Sebagai contoh, minta rakan yang mengerahkan projek untuk menghantarnya semula kepada anda, dan kemudian anda boleh menggunakan pengiraan itu untuk mengira kunci dan menghantar. ia kembali.

  2. Anda menjana sendiri kunci dan mengedarkannya ke mana-mana.

    Contohnya, bina perkhidmatan web lain, gunakan mesin ini untuk menjana kumpulan UUID dan mengedarkannya Kemudian selepas projek dimulakan, mula-mula minta pelayan ini untuk melakukan pengesahan sama ada kunci itu wujud dan sama ada ia telah digunakan Hantar Adakah mesin tempat kunci digunakan adalah mesin yang sama seperti pengaktifan pertama? (Hanya gunakan algoritma tidak boleh balik yang sama)
    Atau lebih mudah, gunakan algoritma pseudo-rawak (algoritma boleh balik Sekumpulan kunci boleh dikira berdasarkan benih, dan benih boleh dinyahkodkan untuk setiap kunci).
    Nyahsulit kunci input apabila projek dimulakan dan tentukan sama ada ia adalah benih.

伊谢尔伦
  • Dengan syarat anda telah memberikan ini key kepada pelanggan melalui cara lain

  • Sahkan sama ada akses itu menyalahi undang-undang Gunakan cookie untuk menentukan sama ada anda telah log masuk. Jika pengesahan lebih ketat, anda juga boleh menambah beberapa ip alamat, mac alamat dan pengesahan kukuh yang lain. jika anda datang berdasarkan kebenaran Lagipun, pangkalan pelanggan anda mungkin bukan orang awam.

  • Tempoh penggunaan yang dibenarkan, anda katakan ia dikira secara bulanan, dan mungkin terdapat lebih banyak pelanggan lanjutan yang dikira pada asas setengah tahun, jadi ini diputuskan semasa menjana
    Anda boleh menggunakan redis untuk menyimpan anda Untuk key ini, anda boleh menetapkan masa tamat tempoh Setiap kali anda melawat, anda boleh mendapatkan cookie daripada key (kebanyakan daripada mereka perlu disulitkan mengikut key, anda). boleh pergi ke redis untuk mendapatkan baki masa kebenaran

  • Jika anda gagal mengesahkan kunci dan mengakses mana-mana halaman, anda mesti melompat kembali ke halaman tempat anda memasukkan kunci Soalan itu mempunyai teg springmvc, jadi anda harus tahu bahawa permintaan itu dipintas dan diproses sebelum melompat Anda Harus ada beberapa idea.

小葫芦

Saya tidak tahu bagaimana kunci anda terikat kepada pengguna. Ia mestilah pengecam unik pengguna. Pengecam unik dan kunci pengguna yang sepadan boleh disimpan dalam pangkalan data atau cache untuk menentukan sama ada pengguna mempunyai kebenaran. Bagi lompat halaman, penapis sudah memadai.

阿神

Anda boleh menjana kunci rahsia selepas berjaya melog masuk, menyimpannya dalam kuki dan menetapkan tarikh tamat tempoh kuki Sahkan setiap kali anda memuat semula halaman web Ini adalah kaedah yang agak mudah

刘奇

Jika tiada sijil luaran yang lain, apakah perbezaan antara keperluan subjek dan "rakam status log masuk untuk tempoh masa selepas log masuk menggunakan nama pengguna dan kata laluan"?

阿神

Terima kasih atas balasan anda, tetapi saya minta maaf kerana saya hanya boleh menerima satu jawapan.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!