mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-12 20:38:52 +00:00
Remove `next-auth` and implement our own Authorization/Authentication system from scratch.
## Server
- [x] tokens
- [x] function
- [x] encryption
- [x] AuthController
- [x] /api/auth/sign-in
- [x] /api/auth/sign-out
- [x] /api/auth/session
- [x] /api/auth/session (WE SUPPORT MULTI-ACCOUNT!)
- [x] OAuthPlugin
- [x] OAuthController
- [x] /oauth/login
- [x] /oauth/callback
- [x] Providers
- [x] Google
- [x] GitHub
## Client
- [x] useSession
- [x] cloudSignIn
- [x] cloudSignOut
## NOTE:
Tests will be adding in the future
@affine/templates
Manages template files for use in AFFiNE. For now we only support onboarding templates.
How to update
Before we offer a better solution, to update the onboarding templates:
- run AFFiNE core locally (dev mode)
- expose
ZipTransformerto window. e.g.,import {ZipTransformer} from '@blocksuite/blocks'; window.ZipTransformer = ZipTransformer; - run the following script
(async () => { // make sure ZipTransformer is imported and attached to window const { ZipTransformer } = window; await Promise.all([...currentWorkspace.blockSuiteWorkspace.pages.values()].map(p => p.load())); // wait for a few more seconds await new Promise(resolve => setTimeout(resolve, 5000)); const zipblob = await ZipTransformer.exportPages(currentWorkspace.blockSuiteWorkspace, [...currentWorkspace.blockSuiteWorkspace.pages.values()]); const url = URL.createObjectURL(zipblob); const a = document.createElement('a'); a.setAttribute('href', url); a.setAttribute('download', `${currentWorkspace.id}.affine.zip`); a.click(); a.remove(); URL.revokeObjectURL(url); })(); - unzip the file, replace the json files into onboarding folder (no need to include the
assets) - run
yarn postinstallto update thetemplates.gen.tsfile