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

常用全域物件 #13

Open
r1235613 opened this issue Aug 8, 2019 · 18 comments
Open

常用全域物件 #13

r1235613 opened this issue Aug 8, 2019 · 18 comments

Comments

@r1235613
Copy link
Collaborator

r1235613 commented Aug 8, 2019

我們把pymongo和jwt的實例存到g物件中好不好?

@misaka10055
Copy link
Collaborator

没问题。
你可以先把代码传到 Github,我看看我这边怎么样做适配

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

你的代碼量較大,由你處理吧
你開個分支,把db = client['test-database']的物件存到g.db,然後你調整一下你的代碼。
jwt有幾種用法,共享私鑰、公開簽章;我認為後者較佳?

@misaka10055
Copy link
Collaborator

OK。我试着做一下,你看下对不对

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

你PUSH在哪裡呢?
我沒看見合併請求

@misaka10055
Copy link
Collaborator

还没……稍等几分钟

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

@zjdavid2
如果你使用我的裝飾器檢測登入,若使用者已登入,我會把使用者的檔案放在g.user
OK嗎?

@misaka10055
Copy link
Collaborator

没问题。
不过这样做开销会不会比较大?

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

我除了驗證簽章外,也有驗證jwt令牌是否已被撤銷,資料庫存取次數為一
應該不會

def login_required(f):
    @wraps(f)
    def decorated_function(*args, **kwargs):
        auth_header = request.headers.get('auth')
        try:
            decode_jwt = jwt.decode(auth_header, current_app.secret_key, algorithms=['HS256'])
        except jwt.exceptions.InvalidTokenError:
            return jsonify({"msg": "Auth sign does not verify"}), 400
        user: dict = get_user_with_uid(decode_jwt.get("sub"))
        if decode_jwt["iat"] < user["valid_since"]:  # 若是這個jwt已被撤銷
            return jsonify({"msg": "This session has been revoked"}), 403
        g.user = user
        return f(*args, **kwargs)
    return decorated_function

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

我覺得我們應該開個wiki記錄設定檔、G有哪些屬性等等的共享資料

@misaka10055
Copy link
Collaborator

附议。不过这个Wiki需要是Private的吗?设定档里面可能会包含数据库账号/密码等信息。

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

否,我們只說明裡面會是什麼,不說明實際的值,我已經建立了兩個Page,給點意見?

@misaka10055
Copy link
Collaborator

我觉得很棒。

要不要把我们写的 API 也放上去?

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

當然好

@misaka10055
Copy link
Collaborator

OK。那我把我写的几个API 也放上去

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

你熟Markdown嗎,如果不熟你寫完之後我再幫你修格式

@misaka10055
Copy link
Collaborator

你熟Markdown嗎,如果不熟你寫完之後我再幫你修格式

不太熟,不过我会尝试照抄你的格式。

我现在得去做一些迎击台风的准备(Orz),所以还写不了。
我晚上会回来写的,大概。

@r1235613
Copy link
Collaborator Author

r1235613 commented Aug 8, 2019

你不是在美國嗎XD

@misaka10055
Copy link
Collaborator

暑假的时候不在喔,只有上课的时候才会回美国。

你这么一说又提醒了我,我的暑假只剩一周了……

一周后又要回去上课了(躺

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