前面我們在項目中引入了用戶登錄狀態的檢測,但是并沒有與實際的后臺項目打通。我們需要有一個用戶后臺,負責記錄用戶的基本信息,處理用戶注冊用戶登錄和用戶管理等功能。
現在我們就開始設計我們用戶社區后臺。
第一版本,我們的需求先設計得簡單一些,后面再一步一步迭代。
我們先設計用戶的基本信息:
| id | name | account | password | age | avatar | gendor |
| --- | --- | --- | --- | --- | --- | --- |
| integer | varchar(64) | varchar(64) | binary | integer | varchar(4096) | integer |
| 唯一id | 展示用戶名 | 登錄賬戶 | 登錄密碼 | 年齡 | 用戶頭像 | 性別
|
>
>
> ~~~
> CREATE TABLE IF NOT EXISTS "user"
> (
> ? ? id serial NOT NULL,
> ? ? name varchar(64) NOT NULL,
> ? ? account varchar(64) NOT NULL,
> ? ? password bytea NOT NULL,
> ? ? age int,
> ? ? avatar varchar(4096),
> ? ? gendor int DEFAULT -1,
> ? ? -- timestamps
> ? ? created_date? ? ? ? ? ? timestamp? ? ? ? ? ? ? ? ? ? ? DEFAULT now(),
> ? ? changed_date? ? ? ? ? ? timestamp? ? ? ? ? ? ? ? ? ? ? DEFAULT now(),
> ? ? deleted_date? ? ? ? ? ? timestamp? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?NULL,
> ? ? CONSTRAINT user_pk PRIMARY KEY ("id")
> );
> CREATE UNIQUE INDEX IF NOT EXISTS user_account_uqinue ON "user"("account")
>
> ~~~
>
>
接下來我們創建一個用戶后臺項目,這個項目你可以根據自己的喜好和熟悉程度用不同的語言和框架去實現,當然也可以使用和改造現成的用戶社區項目,這類項目隨便找一下應該有不少。
這里我選擇使用php的laravel框架來從頭實現后臺的功能。
數據庫我選擇mysql。
我們可以根據各自的技術棧儲備情況來選擇開發框架,并沒有哪種實現是絕對的最好,高效合理地解決問題才是關鍵。
好了,我們把后端工程先搭起來,連接數據庫并創建好我們的用戶表。
下面我們來實現一個用戶注冊的第一版接口,提供account/password/name等基本信息創建用戶。
這里由于account是以后用于用戶登錄的,所以我們在注冊時要保證它的唯一性,當然我們在數據庫設計時已經保證了這一點。
另外,我們應該盡量保持注冊的過程的簡潔,前期以引入用戶為主,在獲取足夠的必要信息后,其他的信息可以在后面引導用戶完善。所以這里我們只讓用戶提供了賬號密碼和名字。
再來做一個用戶登錄的接口,從而好與我們之前在scratch-gui中做的用戶登錄對接起來。

在登錄成功后,返回用戶信息和JWT token。用戶信息用于前端展示,token將由前端存在本地,在后面需要身份驗證的接口中帶過來。
好了,由于這個是后臺相關的技術,是最基本的用戶登錄和注冊兩個接口,所以介紹的比較簡介,本章我們把用戶社區后臺的服務搭建起來了,下一步我們來將本章實現的兩個接口與scratch-gui前端對接起來。