java如何实现重复登录强制下线功能

java如何实现重复登录强制下线功能,第1张

登录之后,更具用户名,密码,登录时间等用某种算法生成唯一不可破译的编码字符串token(每次登录不同),设置唯一,以后的任何 *** 作都用这个token进行验证。这样每次能保证有且只有一个用户

<script type="text/javascript" src=">对付WiFi万能钥匙这样的软件,最好通过加强无线路由器安全防护入手。
1、修改路由器的无线密码
这是最直接了当的方法,只要修改了家里的无线密码,WiFi万能钥匙上保持的老密码就失去了作用,别人自然无法蹭你家的网了。但是修改了无线密码之后,家里的电脑、平板、手机等设备也要跟着修改密码。如果你家的上网设备比较多的话,一个一个修改密码就是很头疼的事情。
2、开启黑名单/白名单
一般比较高级一点的家用无线路由器都有黑/白名单的功能,大家可以通过路由器后台(一般是在浏览器输入19216801即可),看到正在访问你家无线网络的设备列表。在列表中显示的IP就对应着一个一个无线终端设备,如果是陌生的设备连上了你家的路由器,就可以把它加入黑名单,这样一来即使他有你家的WiFi密码,也会被路由器拒绝连接。

11 权限的分类
(1)后端权限
从根本上讲前端仅仅只是视图层的展示,权限的核心是在服务器中的数据变化,所以后端才是权限的概念,后端权限可以控制某个用户是否能够查询数据,是否能够修改数据等 *** 作

在登录请求中,会得到权限数据,当然,这个需要后端返回数据的支持,前端根据权限数据,展示对应的菜单,点击菜单才能查看相关的界面

如果用户没有登录,手动在地址栏敲入管理界面地址,则需要跳转到登录页面
如果用户已经登录,如果手动敲入非权限内的地址,则需要跳转到404页面

在某个菜单的界面中,还得根据权限数据,展示出可以进行 *** 作的按钮,比如,删除,修改,增加

如果用户通过非常规 *** 作,比如通过浏览器调试工具将某些禁用的按钮变成启用状态,此时发送的请求,也应该被前端所拦截

用户登录后服务器返回一个数据,这个数据有菜单列表和token,我们把这个数据放到 vuex 中,然后主页根据 vuex 中的数据进行菜单列表的渲染

问题:刷新界面 vuex 数据消失,菜单栏消失
解决:将数据存储在 sessionStorage 中,并让其和 vuex 中的数据保持同步

登录成功后,将token数据存储在 sessionStorage 中,判断其是否登录

问题:这样用户在登录之后就可以访问其他界面了,但如果用户A登录之后只能访问a页面,不能访问页面,但是这个时候还是可以通过地址栏输入进入到b页面
解决:当然我们也可以设置路由导航守卫,但是如果有多个页面,设置会非常不方便,并且对于A来说,它是不用访问b页面的,这时候我们何不对A不显示b页面,这个时候我们就用到了 动态路由

这样当用户A在地址栏输入自己不能访问的路由时,则不会跳转到该页面,会跳转到404页面
问题:如果我们重新刷新的话,动态路由就会消失,动态路由是登录成功之后才会调用的,刷新的时候并没有调用,所以动态路由并没有添加上
解决:可以在 appvue 中的 created 中调用动态路由的方法

虽然用户可以看到某些界面了,但是这个界面的一些按钮该用户可能是没有权限的。因此,我们需要对组件中的一些按钮进行控制,用户不具备权限的按钮就隐藏或者禁用,而在这块的实现中个,可以把该逻辑放在自定义指令中
比如,我们可以根据后端返回的数据right来判断用户有什么权限

添加自定义指令
v-permission="{action:'add',effect:'disavled'}"
在permissionjs中

(1)请求控制

(2)响应控制
得到了服务器返回的状态码是401,代表token超时或者被篡改了,此时应该强制跳转到登录界面

前端权限的实现之须要后端提供数据支持,否则无法实现。
返回的权限数据结构,前后端须要沟通协商怎样的数据使用起来才最方便

只要限制游客登录就可以做到必须登录才能访问discuz
一、后台-用户-用户组-系统用户组-游客,选择后面的“编辑”
二、基本设置-访问站点权限,选择“禁止访问”
三、保存设置并更新缓存。
这样就设置好了discuz必须登录才能访问


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13396697.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-28
下一篇 2023-07-28

发表评论

登录后才能评论

评论列表(0条)

保存