dsm-dms / dms-backend Goto Github PK
View Code? Open in Web Editor NEWDMS Server with Flask
License: MIT License
DMS Server with Flask
License: MIT License
어플리케이션 측은 강제적인 업데이트가 미존재하므로, v1 API에 대한 테스트 케이스는 지속적으로 몰고 나가야할 필요가 있습니다.
refresh token 컬렉션에 이제 거의 10K정도의 document가 들어가 있습니다(..) 이전부터 '개선해야겠다' 싶은 부분이긴 했는데, 토큰을 어떻게 보관하고 발급할지, 각 사용자 세션의 unique함을 어떻게 판단할지를 생각해내지 못해 계속 헤매다가 방법을 생각해내서 로직 개선을 진행하고자 합니다.
한 사용자-한 디바이스를 묶어(userid + user-agent) unique를 판단한다는 것을 전제로 합니다.
위에서 설명한 로직으로 진행합니다. 단, 그 전에 RefreshTokenModel에 user-agent 필드를 추가하고, AccessTokenModel을 새로 추가해 주어야 합니다.
이들은 token identity가 각자의 ID입니다. 따라서 view function에 감싸진 auth_required같은 데코레이터에서도 단지 ID로 쿼리해서 user 객체를 가져오고 있습니다.
해당 로직은 유지하되, 새로운 로직이 적용된 이후 토큰을 발급받은 사용자를 위한 로직을 다음과 같이 구성합니다.
Refresh 로직은 다음과 같습니다.
암호화 관련 이슈 처리를 위해 ID만 검증하던 부분을 다시 ID/PW 모두 검증하기로 합니다.
외출 신청시간을 일요일 20:30 ~ 금요일 22:00 으로 제한
회원가입을 대기중인 학생과 완료 학생 리스팅 api
DMS API version 2를 작성합니다.
기존에 사용하던 데이터베이스를 데이터베이스 v2로 마이그레이션하는 코드를 작성합니다.
dms-v2와 같은 느낌으로 MongoDB에 데이터베이스를 새로 만들고, 이를 바라보도록 한 상태에서 스키마를 재작성합니다.
API v1과 v2를 상호 운용하기 위함입니다. 해당 작업이 끝나면, 데이터베이스에 관한 이슈는 모두 종료입니다.
Live로 돌고 있는 서버가 참조하는 'dms' 데이터베이스의 컬렉션 중, 이전에는 사용하다가 데이터베이스 구조를 바꾸며 현재는 쓸모 없는(CRUD가 진행되지 않는) 컬렉션이 있습니다. 제거 작업이 필요합니다.
신입생들의 학번 명렬표 가 필요함
프론트엔드 측에서 v2 API로 마이그레이션이 모두 진행되어 모든 클라이언트가 v2를 참조하면, API v1을 제거합니다.
date = DateTimeField(
required=True
)
가 있는 모델을 생성하면 date가 서버를 킨 시점으로 고정되는 문제
개발용으로 배치해 두었던 3001번 포트로 통신하던 트래픽을 제거하고, 80 포트로 모든 트래픽을 combine합니다.
apply를 계속 지켜본 결과 default는 잘 동작합니다.
현재 Api 객체를 만들면서 prefix를 설정하고 있는데, Api 객체를 만든 이후 다음 라인에서 prefix를 설정하면 더 직관적이라는 것을 알고 있습니다. 따라서 해당 이슈에 대한 간단한 리팩토링을 진행합니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.