zoukankan      html  css  js  c++  java
  • JWT生成token

    using JWT;
    using JWT.Algorithms;
    using JWT.Exceptions;
    using JWT.Serializers;
    using System;
    using System.Collections.Generic;

    namespace common
    {
    public class JWTHelper
    {
    public static string CreateJWT()
    {
    var payload = new Dictionary<string, object>
    {
    { "claim1", 0 },
    { "claim2", "claim2-value" }
    };
    const string secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";
    IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
    IJsonSerializer serializer = new JsonNetSerializer();
    IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
    IJwtEncoder encoder = new JwtEncoder(algorithm, serializer, urlEncoder);
    var token = encoder.Encode(payload, secret);
    return token;
    }
    public static string DecodeJWT(string token)
    {
    const string secret = "GQDstcKsx0NHjPOuXOYg5MbeJ1XT0uFiwDVvVBrk";
    string result = "";
    try
    {
    IJsonSerializer serializer = new JsonNetSerializer();
    IDateTimeProvider provider = new UtcDateTimeProvider();
    IJwtValidator validator = new JwtValidator(serializer, provider);
    IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
    IJwtAlgorithm algorithm = new HMACSHA256Algorithm();
    IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder, algorithm);

    result = decoder.Decode(token, secret, verify: true);
    }
    catch (TokenExpiredException)
    {
    Console.WriteLine("Token has expired");
    }
    catch (SignatureVerificationException)
    {
    Console.WriteLine("Token has invalid signature");
    }
    catch (Exception EX)
    {
    Console.WriteLine("Token has invalid signature");
    }
    return result;
    }
    }
    }

  • 相关阅读:
    2015年个人记录
    Win10如何新建用户怎么添加新账户
    快速搭建一个本地的FTP服务器
    天气接口
    一张图搞定OAuth2.0
    PHP TS 和 NTS 版本选择
    如何在 Laravel 中使用 SMTP 发送邮件(适用于 163、QQ、Gmail 等)
    Npm vs Yarn 之备忘详单
    浅谈CSRF
    值得看的cookie详解
  • 原文地址:https://www.cnblogs.com/zhang-wenbin/p/13043844.html
Copyright © 2011-2022 走看看