linys2333 / Authorization

基于JWT Token的身份验证学习

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

一些说明

用户名随意,测试密码:空

目录

§ 验证流程

§ 身份验证模块

§ 加密算法


§ 验证流程

登录流程


请求认证


退出登陆


§ 身份验证模块

.
├──Server/
│  ├──Common/
   │  ├── Authorization/
      │   ├── IToken.cs
          ├── JwtToken.cs
          ├── JwtAuth.cs
          ├── TokenConfig.cs
          ├── Exceptions.cs

懒得写了,详见IToken.cs


§ 加密算法

数据库存储格式:MD5( [原始密码] )

前端加密格式:MD5( MD5( [原始密码] ).[服务端随机串] ),用于登陆时传入后端

后端校验:[前端加密密码] == MD5( [数据库存储密码].[服务端随机串] )

【注意】:MD5和SHA-1被认为不再安全,微软推荐使用SHA-2系列(SHA-256、SHA-512等)加密算法( https://msdn.microsoft.com/zh-cn/library/92f9ye3s(v=vs.110).aspx#哈希值

Token对象构成:

    public class JwtToken : IToken
    {
        #region 服务端存储的信息,对客户端隐藏

        public 随机加密盐 Salt { get; set; }
        ...

        #endregion

        #region 提供给客户端的信息

        public 头部 Header { get; set; }
        public 载荷 Payload { get; set; }

        #endregion
    }

Token加密串:Base64Url( [Header] ).Base64Url( [Payload] ).Base64Url( HMAC( Base64Url( [Header] ).Base64Url( [Payload] ) , [Salt] ) )

About

基于JWT Token的身份验证学习


Languages

Language:C# 60.5%Language:JavaScript 19.8%Language:Vue 11.6%Language:CSS 7.0%Language:HTML 1.1%