Ejemplo n.º 1
0
        public async Task <IActionResult> UserInfo(UserInfoAddressModel model)
        {
            var target = await _dbContext
                         .AccessToken
                         .SingleOrDefaultAsync(t => t.Value == model.access_token);

            if (target == null)
            {
                return(Json(new AiurProtocal {
                    Message = "Invalid Access Token!", Code = ErrorType.WrongKey
                }));
            }
            else if (!target.IsAlive)
            {
                return(Json(new AiurProtocal {
                    Message = "Access Token is timeout!", Code = ErrorType.Timeout
                }));
            }
            var user = await _userManager.FindByIdAsync(model.openid);

            var viewModel = new UserInfoViewModel
            {
                Code    = 0,
                Message = "Successfully get target user info.",
                User    = user
            };

            return(Json(viewModel));
        }
Ejemplo n.º 2
0
        public async Task <IActionResult> UserInfo(UserInfoAddressModel model)
        {
            var Target = await _dbContext
                         .AccessToken
                         .Include(t => t.OAuthPack)
                         .SingleOrDefaultAsync(t => t.Value == model.access_token);

            if (Target == null)
            {
                return(Json(new AiurProtocal {
                    message = "Invalid Access Token!", code = -1
                }));
            }
            if (Target.OAuthPack.UserId != model.openid)
            {
                return(Json(new AiurProtocal {
                    message = "Invalid Open Id!", code = -2
                }));
            }
            var _user = await _userManager.FindByIdAsync(model.openid);

            var _viewModel = new UserInfoViewModel
            {
                openid           = _user.Id,
                headimgurl       = _user.headimgurl,
                nickname         = _user.nickname,
                sex              = _user.sex,
                preferedLanguage = _user.preferedLanguage
            };

            return(Json(_viewModel));
        }
Ejemplo n.º 3
0
        public async Task <IActionResult> UserInfo(UserInfoAddressModel model)
        {
            var appId = _tokenManager.ValidateAccessToken(model.AccessToken);
            var user  = await _dbContext.Users.Include(t => t.Emails).SingleOrDefaultAsync(t => t.Id == model.OpenId);

            if (user == null)
            {
                return(this.Protocol(ErrorType.NotFound, "Can not find a user with open id: " + model.OpenId));
            }
            if (!await user.HasAuthorizedApp(_dbContext, appId))
            {
                return(this.Protocol(ErrorType.NotFound, "The user did not allow your app to view his personal info! App Id: " + model.OpenId));
            }
            var viewModel = new UserInfoViewModel
            {
                Code    = 0,
                Message = "Successfully get target user info.",
                User    = user
            };

            return(Json(viewModel));
        }