Ejemplo n.º 1
0
        public async Task <IActionResult> FBLogin(string accessToken)
        {
            var user = _userService.FBLogin(accessToken);

            if (user == null)
            {
                return(Unauthorized());
            }

            var getToken        = TokenMan.GenToken(user, _jwtsetting, _jwtsetting.Expire);
            var getRefreshToken = TokenMan.GenToken(user, _jwtsetting, _jwtsetting.LongExpire);
            var result          = _usersTokenService.SaveToken(user.Id, getToken.tokenString, getRefreshToken.tokenString,
                                                               getToken.expireTo, getRefreshToken.expireTo);

            if (!result)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            Response.Cookies.Append("jwt_token", JsonConvert.SerializeObject(new
            {
                access_token  = getToken.tokenString,
                refresh_token = getRefreshToken.tokenString
            }),
                                    new CookieOptions()
            {
                Expires  = DateTime.Now.AddMinutes(_jwtsetting.LongExpire),
                HttpOnly = true,
                Path     = "/"
            });
            return(await Task.FromResult(Ok()));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> RefreshToken()
        {
            var jwtToken = Request.Cookies["jwt_token"];

            if (jwtToken == null)
            {
                return(Unauthorized());
            }
            var    json         = JsonConvert.DeserializeObject <dynamic>(jwtToken);
            string accessToken  = Convert.ToString(json.access_token);
            string refreshToken = Convert.ToString(json.refresh_token);
            var    usersid      = _usersTokenService.CheckRefreshToken(accessToken, refreshToken);

            if (usersid == 0)
            {
                return(Unauthorized());
            }
            var user = _userService.GetById(usersid.Value);
            //如果存在,重新產生出jwtToken
            var getToken        = TokenMan.GenToken(user, _jwtsetting, _jwtsetting.Expire);
            var getRefreshToken = TokenMan.GenToken(user, _jwtsetting, _jwtsetting.LongExpire);
            var result          = _usersTokenService.UpdateToken(user.Id, getToken.tokenString, getRefreshToken.tokenString,
                                                                 getToken.expireTo, getRefreshToken.expireTo);

            if (!result)
            {
                return(StatusCode(StatusCodes.Status500InternalServerError));
            }
            Response.Cookies.Append("jwt_token", JsonConvert.SerializeObject(new
            {
                access_token  = getToken.tokenString,
                refresh_token = getRefreshToken.tokenString
            }),
                                    new CookieOptions()
            {
                Expires  = DateTime.Now.AddMinutes(_jwtsetting.LongExpire),
                HttpOnly = true,
                Path     = "/"
            });
            return(await Task.FromResult(Ok()));
        }