无需凭据进行身份验证

问题描述 投票:0回答:1

是否有任何方法可以在没有凭据的情况下获取访问令牌?我的 Api 有一个固定令牌作为常量,我正在做的是从客户端在 http 请求的标头中发送“秘密固定令牌”,以便中间件向 API 询问固定令牌是否匹配。

FIXED_TOKEN = 'RandomHardcodedToken'
@app.post("/auth")
async def auth_basic(token: str = Body(embed=True)):
    print(token)
    if(token!=FIXED_TOKEN):
        raise HTTPException(status_code=status.HTTP_401_UNAUTHORIZED, detail='Invalid Token')

我的问题是:这是一种不好的做法吗? ¿有没有好的做法(比如使用 auth2.0 和 JWT 或类似的东西)?

authentication access-token
1个回答
0
投票

如果您的意思是没有用户凭据,则可以使用 OAuth 2.0 客户端凭据授予类型。 https://datatracker.ietf.org/doc/html/rfc6749#section-4.4

有几种不同的方法可以设置您简要描述的内容,但首先您必须弄清楚架构中每个组件扮演的角色。您的后端可能是客户端,它通过向授权服务器发送客户端凭据(通常是 ID 和密钥)来获取访问令牌。您的中间件是资源服务器(或其保护者)。它将接收令牌并将访问令牌发送到授权服务器以验证它或在本地自行验证它。

© www.soinside.com 2019 - 2024. All rights reserved.