public bool GetUserInfo() { int appid, userId; if (!xUtils.DecryptOpenId(this._open_id, out userId, out appid)) { Alert((ResultType)ResponseCode.Token错误, "open_id无效"); return(false); } UserToken token = UserToken.FromCipherToken(_access_token); if (token == null) { Alert("无效Token"); return(false); } if (token.Expire_Time < DateTime.Now) { Alert((ResultType)ResponseCode.令牌已过期, "Token已过期"); return(false); } var fac = UserModuleFactory.GetUserModuleInstance(); IUser userInfo = fac?.GetUserByID(userId); if (userInfo == null) { Alert("用户已注销或不存在"); return(false); } UserInfoDictionary.Add("UserName", userInfo.UserName); UserInfoDictionary.Add("Avatar", userInfo.Avatar); return(true); }
public override Task <GrantResponseDTO> GrantByToken(GrantByTokenRequestDTO request, ServerCallContext context) { return(Task.Run(() => { GrantResponseDTO response = new GrantResponseDTO(); UserToken token = UserToken.FromCipherToken(request.Token); if (token == null) { response.RetCode = "0400"; response.RetMsg = "无效的token"; return response; } OAuthApp app = OAuthAppCache.Get(request.Appid); if (app == null) { response.RetCode = "0400"; response.RetMsg = "无效的应用id"; return response; } if (app.Id != token.AppId) { response.RetCode = "0403"; response.RetMsg = "无效的token"; return response; } CodePrivilege[] privileges = null; if (request.Grants != null && request.Grants.Count > 0) { privileges = new CodePrivilege[request.Grants.Count]; for (int i = 0; i < request.Grants.Count; i++) { privileges[i] = new CodePrivilege { Id = request.Grants[i].Id, Type = request.Grants[i].Type }; } } GrantTokenPrivilegeProvider grant = new GrantTokenPrivilegeProvider(app.Appid, token.UserId, request.Scopes, request.Client.DeviceId); if (!grant.Grant(request.GrantAll, privileges)) { response.RetCode = "0500"; response.RetMsg = "授权失败,请重试"; return response; } response.RetCode = "0000"; response.RetMsg = "ok"; response.Data = new GrantResponseDTO.Types.Result { Code = grant.Auth_Code }; return response; })); }
[HttpPost("client")] // api/authorize/client public ResponseResult <GrantResponseDTO> GrantByToken(GrantByTokenRequestDTO data) { GrantResponseDTO response = new GrantResponseDTO(); UserToken token = UserToken.FromCipherToken(data.Token); if (token == null) { return(Fail <GrantResponseDTO>("无效的token", "0400")); } OAuthApp app = OAuthAppCache.Get(data.Appid); if (app == null) { return(Fail <GrantResponseDTO>("无效的应用id", "0400")); } if (app.Id != token.AppId) { return(Fail <GrantResponseDTO>("无效的token", "0500")); } CodePrivilege[] privileges = null; if (data.Privileges != null && data.Privileges.Count > 0) { privileges = new CodePrivilege[data.Privileges.Count]; for (int i = 0; i < data.Privileges.Count; i++) { privileges[i] = new CodePrivilege { Id = data.Privileges[i].Id, Type = data.Privileges[i].Type }; } } GrantTokenPrivilegeProvider grant = new GrantTokenPrivilegeProvider(app.Appid, token.UserId, data.Scopes, data.Client.DeviceId); if (!grant.Grant(data.GrantAll, privileges)) { return(Fail <GrantResponseDTO>("授权失败,请重试")); } response.Code = grant.Auth_Code; return(Success(response)); }
public static FuncResult <UserToken> DecryptAccessToken(string access_token) { var token = UserToken.FromCipherToken(access_token); return(FuncResult.SuccessResult(token)); }