服务器端记录JWT的Json获取登录人的基本信息

服务器端记录JWT的Json获取登录人的基本信息

很多时候,登录系统后,我们还需要根据登录人的一些信息去进行判断,比如权限问题,一个稍微大一点的系统应该都需要根据不同人的权限去获取不同的数据。比如不同角色的人菜单功能也就不一样。那么下面我们来实现这个功能。

private bool ValidateTicket(string encryptToken, HttpContextBase context)
{
    bool flag = false;
    try
    {
        try
        {
            IJsonSerializer serializer = new JsonNetSerializer();
            IDateTimeProvider provider = new UtcDateTimeProvider();
            IJwtValidator validator = new JwtValidator(serializer, provider);
            IBase64UrlEncoder urlEncoder = new JwtBase64UrlEncoder();
            IJwtDecoder decoder = new JwtDecoder(serializer, validator, urlEncoder);

            var json = decoder.Decode(encryptToken, secret, verify: true);
            flag = true;
            context.Items.Add("TokenJson", json);
        }Code language: PHP (php)

然后我们在其他Action方法中获取这个json对象

[TokenAuth]
public class MenuController : ApiController
{
    public Menu[] Post(dynamic obj)
    {
        var context = Request.Properties["MS_HttpContext"] as HttpContextBase;
        var json = context.Items["TokenJson"].ToString();

        var menus = new Menu[2];
        menus[0] = new Menu() { id = 1, text = "一级菜单" + obj.id };
        menus[1] = new Menu() { id = 2, text = "二级菜单" };
        return menus;
    }
}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注