public ReturnResult<OauthToken> RefreshAccessToken(string refreshToken, int clientId)
{
if (string.IsNullOrWhiteSpace(refreshToken))
{
return new ReturnResult<OauthToken>(21, null, "参数refreshToken错误");
}
var rToken = TokenRepository.Instance.GetRefreshToken(refreshToken);
if (null == rToken)
{
return new ReturnResult<OauthToken>(22, null, "参数refreshToken错误");
}
if (rToken.ClientID != clientId)
{
return new ReturnResult<OauthToken>(23, null, "参数clientId错误");
}
if (rToken.Expires < DateTime.Now.Epoch())
{
return new ReturnResult<OauthToken>(24, null, "refreshToken已过期,请重新登录");
}
var user = memberService.GetMember(rToken.UserKeyID);
if (null == user)
{
return new ReturnResult<OauthToken>(25, null, "当前用户已失效,请重新登录");
}
return this.CreateAccessToken(user);
}