当前位置: 首页 > 知识库问答 >
问题:

java - 如何在后端实现免密登录功能?

秋阳荣
2024-01-23

需求:免密登录

遇到的问题:这个需求谁来做,当然我现在碰到的是前端来做,但是身为程序员要时时刻刻学习,就在想这个需求会不会那次降临到后端,那时候我该怎么做。想要一个思路。

曾想过放权限,但思路不通 ,因为只能有了token才能访问接口 总不能放开每个接口 ,前前后后都绕不开token,除非给他了个永久的token,彻底无奈了 ,这个需求打败了我 ,我暂时没思路了,求教

共有5个答案

斜烈
2024-01-23

还是需要前后端配合,后端给前端双token的机制,一个是短期token(有效期几个小时),另一个是长期token(比如七天有效期),短期token失效,则用长期token去刷新短期token,长期token也失效了也就是至少七天没有账号没有访问过系统了,要求前端引导用户重新登录。

如果要求不高,只要长期token也行。

齐起运
2024-01-23

这应该属于客户端登录的类型。常用的登录方式basic, digest 等方式。就是不需要输入密码,直接以客户端的角色访问。我感觉就是角色转换的问题,一般的情况来说,我们用户终端用户。而在这种视野下,client 成为了终端用户。oauth2 中的client 访问就是使用这种方式。

班建义
2024-01-23

首先生成token是必须的,无论是前端生成还是后端生成,无论是token参数还是其他参数,或者就是短链接,目的都是相同的:识别访问,取回关联信息。
安全考虑,token一般不含有登录信息,后端将token与登录信息关联保存,可保存在缓存或数据库中。
安全和业务需要,token可以是一次性的或者短期有效,后端可以关联IP,浏览器类型增加安全性。
token传输安全,可以考虑https,header,甚至再加密一次。

周飞语
2024-01-23

什么叫免密登陆, 然后什么场景下使用?

前端做的话: 应该是这样的,正常的系统获取流程是 用户输入账号密码, 通过登陆接口获取token, 而客户端可以这样实现, 直接不需要用户输入账号密码,直接悄悄把账号密码固定传给登陆接口就能获取token了,

服务端可以这么实现:

  1. 通过某些加密签名算法,生成一个包含用户ID的随机字符串;
  2. 然后新建一个通过解析这个字符串获取用户id来生成token的接口;
  3. 客户端就可以通过这个参数生成这个临时访问链接,来实现免登陆功能了
微生曾琪
2024-01-23

免密登录在后端实现需要考虑多个方面,下面是一些基本步骤和思路:

  1. 用户授权:首先,需要用户明确授权免密登录。这通常通过前端页面实现,让用户确认是否希望开启免密登录功能。
  2. 生成密钥:在用户同意后,后端可以生成一个临时的、唯一的密钥(例如 UUID),用于后续的免密登录验证。这个密钥可以存储在服务器的内存中,或者使用 Redis 等缓存系统进行存储。
  3. 记录登录信息:将用户的相关信息(如用户名、设备信息等)以及生成的密钥记录到日志或者审计系统中,以便后续验证和审计。
  4. 前端存储密钥:前端将这个密钥存储在本地(如 localStorage 或 cookies),并在之后的请求中携带这个密钥。
  5. 后端验证:当用户发起请求时,后端验证请求中是否包含正确的密钥。如果密钥正确,则认为用户已经登录,并处理请求。如果密钥不存在或已过期,则要求用户重新登录。
  6. 密钥管理:密钥的有效期应当有限,例如可以设置为几天或几小时。一旦密钥过期,用户需要重新授权以生成新的密钥。
  7. 安全性考虑
* 确保密钥的传输安全,通常使用 HTTPS 进行通信。* 避免将敏感信息存储在客户端或传输过程中,只存储和传输必要的登录信息。* 定期清理和更新密钥,以减少被破解的风险。
  1. 异常处理:当出现异常情况时(如密钥过期、验证失败等),后端应当提供适当的错误信息给前端,以便进行相应的错误处理和提示。

需要注意的是,免密登录虽然方便,但也可能带来安全风险。因此,这种功能应当谨慎使用,并确保所有相关的安全措施都得到妥善实施。

 类似资料:
  • 1.1 入口 #!/bin/bash masterip=`head -n 1 $1 |cut -d ' ' -f 1` masterpasswd=`head -n 1 $1 |cut -d ' ' -f 2` ./clean_master.sh ./keygen_master.sh last=`cat $1|grep ^1|wc -l` for((i=2;i<=$last;i++)) do

  • 本文向大家介绍java web实现自动登录功能,包括了java web实现自动登录功能的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了java web实现自动登录功能的具体代码,供大家参考,具体内容如下 主要思路就是:当用户访问网站的首页时,浏览器端会先检擦浏览器中存在的cookie中是否又登录的用户的用户名,如果有,则直接跳转至用户登录好的界面,如果没有,则重定向至登录界面,在服务

  • 本文向大家介绍springboot实现注册加密与登录解密功能(demo),包括了springboot实现注册加密与登录解密功能(demo)的使用技巧和注意事项,需要的朋友参考一下 前情提要:本demo是基于springboot+mybatis-plus实现加密,加密为主,全局异常处理,日志处理为辅,而登录密码加密是每个项目中必须要的,密码不可能明文存入数据,这样没有安全性。 涉及的功能,全局异常处

  • 本文向大家介绍ssh更改默认端口号及实现免密码远程登录,包括了ssh更改默认端口号及实现免密码远程登录的使用技巧和注意事项,需要的朋友参考一下 近来在复习防火墙管理工具 iptables 的基本使用方法,涉及到对端口添加或删除防火墙策略的内容,之前对ssh更改默认端口号及免密码登录的方法不熟悉,这次做一个基本的总结防止自己遗忘。 错误偏差及其他经验之处,还望各位多多支出! 系统环境:两台 RHEL

  • 本文向大家介绍Linux免密码远程登录的实例,包括了Linux免密码远程登录的实例的使用技巧和注意事项,需要的朋友参考一下 Linux免密码远程登录的实例 如何通过一台Linux ssh远程其他linux服务器时,不要输入密码,可以自动登入。提高远程效率,不用记忆各台服务器的密码。 1. 首先登入一台linux服务器,此台做为母机(即登入其他linux系统用这台做为入口);执行一行命令生成key文

  • 问题的意思,类似于 在A机器上用a1账户 ssh genkey,然后把.pub添加到了B机器上。此时在A更换另外一个账户a2,是否仍然能对B免密ssh?