使用Authlib对接GitHub,单次用token取用户信息需实现fetch_token吗?
关于Authlib对接GitHub时是否需要实现fetch_token的问题
我来给你捋清楚这个事儿——完全不需要实现自定义的fetch_token方法,你的实际操作已经验证了这一点,接下来给你拆解原因:
- 当你调用
github.authorize_access_token(request)时,Authlib已经帮你完成了获取access_token的全部流程:它会带着授权码去GitHub的token端点交换令牌,并且自动把拿到的token绑定到当前的GitHub OAuth客户端实例上。 - 正因为有了这个自动绑定的操作,后续你调用
github.get("user")或者github.profile()的时候,客户端会自动带上这个access_token去请求GitHub API,所以这些调用能成功,根本不需要你额外写fetch_token逻辑。 - 文档里提到的“若仅需OAuth登录,则完全无需fetch_token”就是你现在的场景:你只是完成登录流程,一次性获取用户信息就结束,不需要持久化token或者后续重复使用令牌(比如定时同步用户仓库数据),这种情况下完全不用管fetch_token。
那什么时候才需要实现fetch_token呢?只有当你需要持久化token并后续重复使用的时候——比如把token存在数据库里,之后用户再次访问时,你需要从数据库取出token来调用GitHub API,这时候才需要实现fetch_token方法,告诉Authlib如何获取已保存的令牌。
内容的提问来源于stack exchange,提问作者David J. Malan
相关产品推荐
相关产品推荐

