Skip to content
This repository has been archived by the owner on May 25, 2022. It is now read-only.

認證系統API暨儲存資料 #10

Open
r1235613 opened this issue Aug 7, 2019 · 15 comments
Open

認證系統API暨儲存資料 #10

r1235613 opened this issue Aug 7, 2019 · 15 comments

Comments

@r1235613
Copy link
Collaborator

r1235613 commented Aug 7, 2019

主要資料大致如此,需討論問題如下

  • 貨幣制度,例如GP之類的?
  • 身份組,權限組之類的
  • 登入Log或是安全考量的東西(FIDO或是TOTP)或是安全問答。
{
  "_id": "此處由MongoDB自動生成",
  "username": "Heatai",
  "password": "此處使用Bcrypt的雜湊",
  "application_password": [
    {
      "Exhentai_viewer": "Mws2HuSfgm6K5NqCQjYk...trQ4WVz3Mj"
    }
  ],
  "email": "[email protected]",
  "group": [],
  "email_verified": true,
  "email_change_lock": 1565154307,
  "create_time": 1565144307,
  "valid_since": 1565144307,
  "enable": true
}
@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 7, 2019

API 1
POST:https://example.com/v1/auth/login
此端口用於獲取登入憑證,為長期的憑證,可以由前端儲存登入狀態使用。
是說這邊想要做個驗證碼,讓前端用get來獲取base 64編碼的圖片,之後將圖片的名稱與使用者的回覆議起送過來應該會比較安全?
Request Body:

參數名 說明 範例
username 帳號 Heatai
password 密碼 Pa$$vv0rd

Response:
code: 200
一個jwt簽署的令牌

{
  "sub": "Mongo的id",
  "iss": "example.com",
  "aud": "前端的網址",
  "iat": 1565144307,
  "remember": true,
  "type": "login_credential"
}

code: 403

{
  "msg": "The username or password is incorrect"
}

@misaka10055
Copy link
Collaborator

  • 登入系统,我觉得像你写的这样做就没问题了。
  • 验证码方面。我觉得现在传统的验证码效果不是很好。前期可以先不部署验证码,后期再添加。就目前来看,我感觉使用Google 的Recaptcha 是最好,最简便的(虽然大陆访问会有问题
  • 货币制度可以基本沿用。上传档案加 GP 之类的。但是由于我们本身并没有存储服务器,GP 有什么用还得讨论一下(之前似乎是用来下载Archive的)
  • 身份组也沿用吧。
    • 一个问题就是补档需不需要管理员权限。如果需要的话就不能让别人帮忙补档了,如果不需要的话我们可能还得审核(以防出现什么奇怪的东西)。

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 7, 2019

好,那這部分我認領了

@misaka10055
Copy link
Collaborator

好,那這部分我認領了

嗯,那就麻烦你了

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

@zjdavid2
以下流程安全嗎?
使用者註冊->把帳號密碼的雜湊簽章寄到他填寫的信箱
使用者點選連結->進資料庫

另外,電子郵件怎麼,SMTP哪來?

@misaka10055
Copy link
Collaborator

这个链接是永久有效的吗?如果是的话,这个链接如果泄露了就可能会有风险。。

电子邮件服务器我完全不会做。。之前尝试弄过但是一直发不出邮件,后来懒得弄了就改用 G Suite了

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

預計48小時有效,僅用於啟用帳戶,且不會登入
電子郵件我常用的是mailgun
問題在於bcrypt 雜湊後的密碼被寄出是否安全

@misaka10055
Copy link
Collaborator

我觉得是没问题的。用 Hash 也推不出原密码。

我刚才在思考如果一位别有用心的人注册一大堆账号,然后用密码和Hash 尝试推出盐能不能推出来。

我目前的结论是推不出来。

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

@zjdavid2
不過目前沒有驗證碼,被大量註冊的可能性是100%
另外,鹽被解析出來也沒關係,反正每組hash的鹽都是隨機產生

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

扔前端專案徵詢意見了
exxhentai/rehentai-frontend#5 (comment)

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 9, 2019

* 登入系统,我觉得像你写的这样做就没问题了。

* 验证码方面。我觉得现在传统的验证码效果不是很好。前期可以先不部署验证码,后期再添加。就目前来看,我感觉使用Google 的Recaptcha 是最好,最简便的(虽然大陆访问会有问题

* 货币制度可以基本沿用。上传档案加 GP 之类的。但是由于我们本身并没有存储服务器,GP 有什么用还得讨论一下(之前似乎是用来下载Archive的)

* 身份组也沿用吧。
  
  * 一个问题就是补档需不需要管理员权限。如果需要的话就不能让别人帮忙补档了,如果不需要的话我们可能还得审核(以防出现什么奇怪的东西)。

那TOTP有需要嗎?

@misaka10055
Copy link
Collaborator

TOTP 很好用,可以作为一个可选项。让用户选择是否启用

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 9, 2019

你認為前端會想要寫FIDO嗎?

@misaka10055
Copy link
Collaborator

FIDO 是指哪个,生物识别?

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 9, 2019

不僅是生物識別,實體金鑰或是手機都可以當作是FIDO裝置
bandicam2019-08-0916-07-03-158

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants