广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Java后端登录实现返回token
  • 140
分享到

Java后端登录实现返回token

2024-04-02 19:04:59 140人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

前言 最近工作中需要等待前端进行联调和测试,互联网都知道,当到了联调和提测的时候,基本上的工作都是一阵一阵,中间是有很多空隙时间的,于是为了度过这些空隙时间,写几篇博客,记录一下 处

前言

最近工作中需要等待前端进行联调和测试互联网都知道,当到了联调和提测的时候,基本上的工作都是一阵一阵,中间是有很多空隙时间的,于是为了度过这些空隙时间,写几篇博客,记录一下

处理思路大概是: 登录用户是否存在,不存在,则调用注册插入,存在则获取用户基本信息和token

他的原理,我测试琢磨了一下,大致是这样
1.将你输入的 账号、密码、生成时间、你的字符串(盐值-钥匙)、失效时间
2.像我们平常生成md5一样,走了一个算法,算法的钥匙就是你的唯一字符串
3.算法,将账号和密码与生成时间,通过字符串,进行加密,生成一批字符串,这个就是token

当你要验证token的时候,他的原理大致就是这样
1.你把token传过去,他通过你的钥匙字符串,解密,解密出来的东西是否符合他的规则【他会把解密的东西,变成一个含特定字段的JSON数据,如果不符合,那么就解密不出来json,就会报错,就是以json字符串这个特点,去做的规则判断】,不符合,则直接报错,解析错误,然后,获取了其中的时间,当然他也可以获取账号和密码,然后获取当前时间,与你的存储时间,相减,是否超过失效时间,如果是,则提示过期。

理论上来说,我拿到了这个用户的token,我就能以token访问这个用户的任何服务,所以token才要设定过期时间。另外就算是过期token,不能在进行登录,但是token中的信息还是照样可以获取的。
所以token中,不要学文中的测试案例,一样存敏感的信息(如密码等)

这里我们采用Jwt依赖生成token

        <dependency>
            <groupId>com.auth0</groupId>
            <artifactId>java-jwt</artifactId>
            <version>3.8.2</version>
        </dependency>

生成token

package com.example.etf.story.service;

import com.auth0.jwt.JWT;
import com.auth0.jwt.JWTVerifier;
import com.auth0.jwt.alGorithms.Algorithm;
import com.auth0.jwt.interfaces.Claim;
import com.auth0.jwt.interfaces.DecodedJWT;

import java.util.Date;
import java.util.HashMap;
import java.util.Map;

public class TokenUtils {
    //设置过期时间
    private static final long EXPIRE_DATE=1000*60*5; //1分钟
    //token秘钥
    private static final String TOKEN_SECRET = "ZCfasfhuaUUHufguGuwu2020BQWf";

    public static String token (String username,String passWord){

        String token = "";
        try {
            //过期时间
            Date date = new Date(System.currentTimeMillis()+EXPIRE_DATE);
            //秘钥及加密算法
            Algorithm algorithm = Algorithm.HMac256(TOKEN_SECRET);
            //设置头部信息
            Map<String,Object> header = new HashMap<>();
            header.put("typ","JWT");
            header.put("alg","HS256");
            //携带username,password信息,生成签名
            token = JWT.create()
                    .withHeader(header)
                    .withClaim("username",username)
                    .withClaim("password",password).withExpiresAt(date)
                    .sign(algorithm);

        }catch (Exception e){
            e.printStackTrace();
            return  null;
        }
        return token;
    }

    public static boolean verify(String token){
        
        try {
            Algorithm algorithm = Algorithm.HMAC256(TOKEN_SECRET);
            JWTVerifier verifier = JWT.require(algorithm).build();

            DecodedJWT jwt = verifier.verify(token);
            return true;
        }catch (Exception e){
            System.out.println("校验失败");
            return  false;
        }
    }
    public static void main(String[] args) {
        String username ="zhangsan";
        String password = "123";
        String token = token(username,password);
        System.out.println(token);
        boolean b = verify("eyJhbGCiOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXNzd29yZCI6IjEyMyIsImV4cCI6MTY1NzA5ODE4MCwidXNlcm5hbWUiOiJ6aGFuZ3NhbiJ9.W-IgXJmNBrboXlzT_PtPkTavYhgRn9ZwkVpJoJLU6ks");
        Claim username1 = JWT.decode("eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJwYXNzd29yZCI6IjEyMyIsImV4cCI6MTY1NzA5ODE4MCwidXNlcm5hbWUiOiJ6aGFuZ3NhbiJ9.W-IgXJmNBrboXlzT_PtPkTavYhgRn9ZwkVpJoJLU6k1").getClaim("username");
        System.out.println("我是从token中获取的信息"+username1.asString());

        System.out.println(b);
    }
}

到此这篇关于Java后端登录实现返回token的文章就介绍到这了,更多相关Java后端登录 内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Java后端登录实现返回token

本文链接: https://www.lsjlt.com/news/153735.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Java后端登录实现返回token
    前言 最近工作中需要等待前端进行联调和测试,互联网都知道,当到了联调和提测的时候,基本上的工作都是一阵一阵,中间是有很多空隙时间的,于是为了度过这些空隙时间,写几篇博客,记录一下 处...
    99+
    2022-11-13
  • SpringSecurity实现前后端分离登录token认证详解
    目录 1. SpringSecurity概述 1.1 权限框架 1.1.1 Apache Shiro 1.1.2 SpringSecurity 1.1.3 权限框架的选择 1.2 授权和认证 1.3 SpringSecurity的功能 ...
    99+
    2023-08-31
    spring java spring boot
  • Java后端登录功能怎么实现
    本篇内容介绍了“Java后端登录功能怎么实现”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一. 登录需求分析页面原型 登录页面展示:项目路径...
    99+
    2023-06-30
  • Java怎么实现登录token令牌
    本文小编为大家详细介绍“Java怎么实现登录token令牌”,内容详细,步骤清晰,细节处理妥当,希望这篇“Java怎么实现登录token令牌”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、流程图二、Tokent...
    99+
    2023-06-30
  • Java如何实现登录token令牌
    目录一、流程图二、Token三、分析四、运行结果一、流程图 二、Token 1、token是一种客户端认证机制,是一个经过加密的字符串,安全性强,支持跨域 2、用户第一次登录,服务...
    99+
    2022-11-13
  • Java如何实现Token登录验证
    这篇文章主要介绍“Java如何实现Token登录验证”,在日常操作中,相信很多人在Java如何实现Token登录验证问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java如何实现Token登录验证”的疑惑有所...
    99+
    2023-07-05
  • Django实现前后端登录
    目录前端登录1. login.vue2.设置路由3.登录标签设置后端登录2.1 创建一个用户表2.2 Settings/dev/py 新增配置2.3 运行时报错修& 改配置环...
    99+
    2022-11-12
  • Sa-Token实现分布式登录鉴权(Redis集成 前后端分离)
    文章目录 1. Sa-Token 介绍2. 登录认证2.1 登录与注销2.2 会话查询2.3 Token 查询 3. 权限认证3.1 获取当前账号权限码集合3.2 权限校验3.3 角色校...
    99+
    2023-09-02
    分布式 java 服务器
  • Java实现Token登录验证的项目实践
    目录一、JWT是什么?二、使用步骤1.项目结构2.相关依赖3.数据库4.相关代码三、测试结果一、JWT是什么? 在介绍JWT之前,我们先来回顾一下利用token进行用户身份验证的流程...
    99+
    2023-03-19
    Java Token登录验证 Java 登录验证
  • Vue前端登录token信息验证功能实现
    用户在首次访问网站时,应在登录页面填写账号密码,前端携带用户信息向服务器请求。 1、服务器验证用户信息 验证失败:给前端响应数据 验证通过:对该用户创建token,并以响应数据返回给...
    99+
    2022-12-27
    Vue token验证 Vue前端token验证
  • SpringBoot怎么实现统一后端返回格式
    这篇文章主要介绍“SpringBoot怎么实现统一后端返回格式”,在日常操作中,相信很多人在SpringBoot怎么实现统一后端返回格式问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”SpringBoot怎么实...
    99+
    2023-06-30
  • Java登录功能实现token生成与验证
    一、token与cookie相比较的优势 1、支持跨域访问,将token置于请求头中,而cookie是不支持跨域访问的; 2、无状态化,服务端无需存储token,只...
    99+
    2022-11-12
  • java实现后台返回base64图形编码
    目录java后台返回base64图形编码工具类使用方法后端返回base64验证码,解析不出来java后台返回base64图形编码 工具类 package com.liginfo.ap...
    99+
    2022-11-13
  • 详解SpringBoot如何实现统一后端返回格式
    目录1.为什么要对SpringBoot返回统一的标准格式1.1 返回String1.2 返回自定义对象1.3 接口异常2.定义返回对象3.定义状态码4.统一返回格式5.高级实现方式5...
    99+
    2022-11-13
  • 使用Django怎么实现前后端登录
    这期内容当中小编将会给大家带来有关使用Django怎么实现前后端登录,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。前端登录1. login.vue<template>  &...
    99+
    2023-06-14
  • Java流形式返回前端的实现示例
    目录前言一、字符串流二、文件流前言 为了实现像ChatGPT一样的效果:文字进行逐个显示,后端返回的时候需要以流的形式。 一、字符串流 @PostMapping("retur...
    99+
    2023-05-17
    Java流形式返回前端 java 返回流给前端
  • 微信小程序登录对接Django后端实现J
    点击授权按钮后可以显示部分资料和头像,点击修改资料可以修改部分资料。 流程 1.使用微信小程序登录和获取用户信息Api接口 2.把Api获取的用户资料和code发送给django后端 3.通过微信接口把code换取成openid 4...
    99+
    2023-01-31
    后端 程序 微信小
  • vue前后端分离如何实现单点登录跨域
    这篇文章主要介绍“vue前后端分离如何实现单点登录跨域”,在日常操作中,相信很多人在vue前后端分离如何实现单点登录跨域问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”vue前后端分离如何实现单点登录跨域”的疑...
    99+
    2023-07-04
  • Vue将将后端返回的list数据转化为树结构的实现
    下载 cnpm i -S array-to-tree 引入 import arrayToTree from "array-to-tree"; 使用 const pidDa...
    99+
    2022-11-13
  • 后端接口返回文件流格式、前端如何实现文件下载导出呢?
    在项目开发过程中,难免会需要实现文件下载功能,记录下自己实际开发过程过程中遇到两种实现的方式。一种:后端直接返回加密url ,前端解密后直接使用 a标签下载就可以,这种方法相等比较简单,另一种:后端接...
    99+
    2023-09-02
    前端 java javascript
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作