1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- using System;
- using Microsoft.AspNetCore.Http;
- using System.IdentityModel.Tokens.Jwt;
- using System.Linq;
- using TEAMModelOS.Models;
- using TEAMModelOS.SDK.Extension;
- namespace TEAMModelBI.Tool.Extension
- {
- public static class HttpJwtAnalysis
- {
- /// <summary>
- /// 通过jwt封装的字串解析,id和名称
- /// </summary>
- /// <param name="auth"></param>
- /// <param name="option"></param>
- /// <returns></returns>
- public static (string id, string name) JwtXAuth(string auth, Option option)
- {
- string id = null, name = null;
- if (!string.IsNullOrWhiteSpace(auth) && JwtAuthExtension.ValidateApiToken(auth, option.JwtSecretKey))
- {
- var jwt = new JwtSecurityTokenHandler().ReadJwtToken(auth);
- id = jwt.Payload.Sub;
- name = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("name"))?.Value;
- }
- return (id, name);
- }
- /// <summary>
- /// 通过jwt封装的字串解析
- /// </summary>
- /// <param name="httpContext"></param>
- /// <param name="key"></param>
- /// <returns></returns>
- public static (string id, string name, string pic, string did, string dname, string dpic) JwtXAuthBI(string auth, Option option)
- {
- object id = null, name = null, pic = null, did = null, dname = null, dpic = null;
- if (!string.IsNullOrWhiteSpace(auth) && JwtAuthExtension.ValidateApiToken(auth, option.JwtSecretKey))
- {
- var jwt = new JwtSecurityTokenHandler().ReadJwtToken(auth);
- id = jwt.Payload.Sub;
- name = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("name"))?.Value;
- pic = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("picture"))?.Value;
- did = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("ddsub"))?.Value;
- dname = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("ddname"))?.Value;
- dpic = jwt.Claims.FirstOrDefault(claim => claim.Type.Equals("ddpicture"))?.Value;
- }
- return (id?.ToString(), name?.ToString(), pic?.ToString(), did?.ToString(), dname?.ToString(), dpic?.ToString());
- }
- }
- }
|