Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
| /// Playground - noun: a place where people can play | |
| /// I am the very model of a modern Judgement General | |
| //: # Algorithm W | |
| //: In this playground we develop a complete implementation of the classic | |
| //: algorithm W for Hindley-Milner polymorphic type inference in Swift. | |
| //: ## Introduction |
| import UIKit | |
| class ChatCollectionViewFlowLayout: UICollectionViewFlowLayout { | |
| private var topMostVisibleItem = Int.max | |
| private var bottomMostVisibleItem = -Int.max | |
| private var offset: CGFloat = 0.0 | |
| private var visibleAttributes: [UICollectionViewLayoutAttributes]? |
| // Yeah, global variables suck, but it's kind of a necessary evil here | |
| AudioUnit *audioUnit = NULL; | |
| float *convertedSampleBuffer = NULL; | |
| int initAudioSession() { | |
| audioUnit = (AudioUnit*)malloc(sizeof(AudioUnit)); | |
| if(AudioSessionInitialize(NULL, NULL, NULL, NULL) != noErr) { | |
| return 1; | |
| } |