Example #1
0
        private static TokenModel CreateToken(IAuthIdentity user)
        {
            var dic = user.GetTokenData();

            dic.Add("auth_id", user.GetId());
            dic.Add("auth_name", user.GetName());
            dic.Add("auth_roles", user.GetRoles());
            dic.Add("auth_flag", "token");
            dic.Add("expires_in", Common.Timestamp.GetUTCTimestamp());
            string token = JWT.JsonWebToken.Encode(dic, SECRETKEY, JWT.JwtHashAlgorithm.HS256);

            Dictionary <string, object> refreshdic = new Dictionary <string, object>();

            refreshdic.Add("auth_id", user.GetId());
            refreshdic.Add("auth_flag", "refresh");
            refreshdic.Add("expires_in", Common.Timestamp.GetUTCTimestamp());

            TokenModel tm = new TokenModel();

            tm.Token        = JWT.JsonWebToken.Encode(dic, SECRETKEY, JWT.JwtHashAlgorithm.HS256);
            tm.RefreshToken = JWT.JsonWebToken.Encode(refreshdic, SECRETKEY, JWT.JwtHashAlgorithm.HS256);
            tm.Expires      = EXPIRES_IN;
            tm.Id           = user.GetId();
            return(tm);
        }
Example #2
0
        public override IAuthIdentity Login(LoginParam param)
        {
            try
            {
                IAuthIdentity user = null;

                if (!string.IsNullOrEmpty(param.RefreshToken))
                {
                    UserAuth.GetToken(param.RefreshToken, (userid) =>
                    {
                        user = new Identity(dataAccess.Find <Account>(Guid.Parse(userid)));
                        return(user);
                    });
                    return(user);
                }
                user = base.Login(param);
                return(user);
            }
            catch (Exception ex)
            {
                Common.LogHelper.WriteLog(this.GetType(), ex);
                throw ex;
            }
        }
        /// <summary>
        /// 保存cookie
        /// </summary>
        /// <param name="user"></param>
        /// <param name="token"></param>
        protected void SaveCookie(IAuthIdentity user, TokenModel token)
        {
            Data.Models.Account account = user.GetUser() as Data.Models.Account;
            //添加token到
            HttpCookie cookie = new HttpCookie("token", token.Token);

            cookie.Expires = DateTime.Now.AddHours(2);
            HttpContext.Current.Response.Cookies.Add(cookie);

            //添加refreshToken和token的失效时间,失效时间为100分钟
            DateTime validDatetime = DateTime.UtcNow.AddMinutes(100);
            var      refresh       = new
            {
                refreshToken = token.RefreshToken,
                vaildTime    = Common.Timestamp.GetTimestamp(validDatetime).ToString(),
                userId       = account.Id,
                userType     = account.Type
            };

            HttpCookie refreshcookie = new HttpCookie("refresh", JsonHelper.Serialize(refresh));

            refreshcookie.Expires = DateTime.Now.AddHours(2);
            HttpContext.Current.Response.Cookies.Add(refreshcookie);
        }
Example #4
0
 public static TokenModel GetToken(IAuthIdentity user)
 {
     return(CreateToken(user));
 }
        /// <summary>
        /// 保存cookie
        /// </summary>
        /// <param name="user"></param>
        protected void SaveCookie(IAuthIdentity user)
        {
            TokenModel token = UserAuth.GetToken(user);

            SaveCookie(user, token);
        }