Last major update: 25.08.2020
- Что такое авторизация/аутентификация
- Где хранить токены
- Как ставить куки ?
- Процесс логина
- Процесс рефреш токенов
- Кража токенов/Механизм контроля токенов
| FROM dart:stable AS build_dart | |
| WORKDIR /app | |
| COPY ./tool/ ./tool/ | |
| RUN dart compile exe tool/web_env.dart -o tool/web-env | |
| FROM plugfox/flutter:stable-web AS build_web |
| import 'package:flutter/foundation.dart' show Listenable, ValueListenable, VoidCallback, ChangeNotifier; | |
| /// Selector from [Listenable] | |
| typedef ListenableSelector<Controller extends Listenable, Value> = Value Function( | |
| Controller controller, | |
| ); | |
| /// Filter for [Listenable] | |
| typedef ListenableFilter<Value> = bool Function(Value prev, Value next); |
| /* | |
| * Dart data class example | |
| * https://gist.github.com/PlugFox/6a6d73a7822001af7f8558df89dbc60d | |
| * https://dartpad.dev/6a6d73a7822001af7f8558df89dbc60d | |
| * Matiunin Mikhail <plugfox@gmail.com>, 16 May 2022 | |
| */ | |
| import 'package:meta/meta.dart'; | |
| void main() => |
| /* | |
| * Custom progress indicator | |
| * https://gist.github.com/PlugFox/d2274f2d4278473774b79b0020cbd618 | |
| * https://dartpad.dev/d2274f2d4278473774b79b0020cbd618 | |
| * Matiunin Mikhail <plugfox@gmail.com>, 1 May 2022 | |
| */ | |
| import 'dart:async'; | |
| import 'dart:math' as math; |
| # ------------------------------------------------------ | |
| # Dockerfile | |
| # ------------------------------------------------------ | |
| # image: gitlab-registry.domain.tld/mobile/app/flutter | |
| # authors: plugfox@gmail.com | |
| # license: MIT | |
| # ------------------------------------------------------ | |
| ARG VERSION="stable" |
| [ | |
| { | |
| "key": "ctrl+shift+l", | |
| "command": "editor.action.transformToLowercase" | |
| }, | |
| { | |
| "key": "ctrl+shift+u", | |
| "command": "editor.action.transformToUppercase" | |
| }, | |
| { |
| { | |
| "Changelog unreleased": { | |
| "scope": "md, markdown", | |
| "prefix": "changelog_unreleased", | |
| "description": "Changelog unreleased", | |
| "body": [ | |
| "# Unreleased", | |
| "+ added: ${0}", | |
| "+ changed: ", | |
| "+ deprecated: ", |
| package main | |
| import ( | |
| "fmt" | |
| "sort" | |
| ) | |
| var counter int = 0 | |
| func main() { |
| "explorer.fileNesting.enabled": true, | |
| "explorer.fileNesting.expand": false, | |
| "explorer.fileNesting.patterns": { | |
| "pubspec.yaml": ".flutter-plugins, .packages, .dart_tool, .flutter-plugins-dependencies, .metadata, .packages, pubspec.lock, build.yaml, analysis_options.yaml, all_lint_rules.yaml", | |
| ".gitignore": ".gitattributes, .gitmodules, .gitmessage, .mailmap, .git-blame*", | |
| "readme.*": "authors, backers.md, changelog*, citation*, code_of_conduct.md, codeowners, contributing.md, contributors, copying, credits, governance.md, history.md, license*, maintainers, readme*, security.md, sponsors.md", | |
| "*.dart": "$(capture).g.dart, $(capture).freezed.dart", | |
| }, |