public async Task <IActionResult> ViewPhoneNumber(ViewPhoneNumberAddressModel model)
        {
            var accessToken = await _dbContext
                              .AccessToken
                              .SingleOrDefaultAsync(t => t.Value == model.AccessToken);

            var app = await ApiService.AppInfoAsync(accessToken.ApplyAppId);

            var targetUser = await _dbContext.Users.FindAsync(model.OpenId);

            if (targetUser == null)
            {
                return(this.Protocal(ErrorType.NotFound, "Could not find target user."));
            }
            if (!_dbContext.LocalAppGrant.Exists(t => t.AppID == accessToken.ApplyAppId && t.APIUserId == targetUser.Id))
            {
                return(Json(new AiurProtocal {
                    Code = ErrorType.Unauthorized, Message = "This user did not grant your app!"
                }));
            }
            if (!app.App.ViewPhoneNumber)
            {
                return(this.Protocal(ErrorType.Unauthorized, "You app is not allowed to view users' phone number."));
            }
            return(Json(new AiurValue <string>(targetUser.PhoneNumber)
            {
                Code = ErrorType.Success,
                Message = "Successfully get the target user's phone number."
            }));
        }
Exemplo n.º 2
0
 public async Task<IActionResult> ViewPhoneNumber(ViewPhoneNumberAddressModel model)
 {
     var user = await _grantChecker.EnsureGranted(model.AccessToken, model.OpenId, t => t.ViewPhoneNumber);
     return Json(new AiurValue<string>(user.PhoneNumber)
     {
         Code = ErrorType.Success,
         Message = "Successfully get the target user's phone number."
     });
 }