Esempio n. 1
0
        public virtual async Task AuthorizePcAsync(AuthorizePcInput input)
        {
            if (await _pcLoginUserLimitCache.GetAsync(CurrentUser.GetId().ToString()) != null)
            {
                throw new PcLoginAuthorizeTooFrequentlyException();
            }

            var miniProgram = await _miniProgramRepository.GetAsync(x => x.AppId == input.AppId);

            var miniProgramUser = await _miniProgramUserRepository.GetAsync(x =>
                                                                            x.MiniProgramId == miniProgram.Id && x.UserId == CurrentUser.GetId());

            await _pcLoginAuthorizationCache.SetAsync(input.Token,
                                                      new MiniProgramPcLoginAuthorizationCacheItem
            {
                AppId   = input.AppId,
                UnionId = miniProgramUser.UnionId,
                OpenId  = miniProgramUser.OpenId,
                UserId  = CurrentUser.GetId()
            },
                                                      new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(30)
            });

            await _pcLoginUserLimitCache.SetAsync(CurrentUser.GetId().ToString(),
                                                  new MiniProgramPcLoginUserLimitCacheItem(),
                                                  new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(3)
            });
        }
Esempio n. 2
0
        public virtual async Task AuthorizePcAsync(AuthorizePcInput input)
        {
            if (await _pcLoginUserLimitCache.GetAsync(CurrentUser.GetId().ToString()) != null)
            {
                throw new PcLoginAuthorizeTooFrequentlyException();
            }

            await _pcLoginAuthorizationCache.SetAsync(input.Token,
                                                      new MiniProgramPcLoginAuthorizationCacheItem { UserId = CurrentUser.GetId() },
                                                      new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(30)
            });

            await _pcLoginUserLimitCache.SetAsync(CurrentUser.GetId().ToString(),
                                                  new MiniProgramPcLoginUserLimitCacheItem(),
                                                  new DistributedCacheEntryOptions
            {
                AbsoluteExpirationRelativeToNow = TimeSpan.FromSeconds(3)
            });
        }
Esempio n. 3
0
 public Task AuthorizePcAsync(AuthorizePcInput input)
 {
     return(_service.AuthorizePcAsync(input));
 }