You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Postman通过dj_rest_auth实现Google登录认证

解决Postman中Google OAuth2令牌调用DRF API提示"invalid token"的问题

你遇到的核心问题是:Postman生成的是Google官方的Access Token,这个令牌仅能用于调用Google的服务,无法直接被Django REST Framework识别。必须通过dj_rest_auth提供的接口,将Google令牌转换为Django系统的认证令牌,才能正常调用你的API。

正确的Postman操作步骤

你的GoogleLogin视图映射到了/accounts/login/,所以需要向这个URL发送POST请求来完成令牌转换,具体操作如下:

方式1:使用Authorization Code(推荐)

  1. 在Postman中新建一个POST请求,URL填写:http://localhost:8080/accounts/login/
  2. 切换到Body标签,选择form-data格式,添加以下字段:
    • grant_type:固定值authorization_code
    • code:Postman OAuth2授权流程中获取到的授权Code
    • client_id:你的Google开发者控制台中的客户端ID
    • client_secret:你的Google开发者控制台中的客户端密钥
    • redirect_uri:与Google开发者后台、Postman OAuth2配置完全一致的回调URL(比如http://localhost:8080/accounts/google/login/callback/)

方式2:直接使用Google Access Token

如果已经拿到Google的Access Token,可直接发送以下请求:

  1. 同样POST到http://localhost:8080/accounts/login/
  2. Body的form-data中添加:
    • token:Postman生成的Google Access Token
    • token_type:固定值Bearer

发送请求后,接口会返回Django系统的认证令牌(包含access_token和refresh_token),后续调用API时,将这个access_token作为Bearer Token即可正常认证。

配置检查要点

  1. 回调URL一致性:确保views.py中callback_url、Google开发者后台、Postman OAuth2配置里的回调URL完全一致(包括协议、端口、路径)
  2. API权限:在Google开发者控制台中启用People API(dj_rest_auth需要通过该API获取用户基本信息)
  3. URL路由:确认你的api_urls已正确包含dj_rest_auth的路由(通常是path('dj-rest-auth/', include('dj_rest_auth.urls'))),不过你单独配置的GoogleLogin视图已经覆盖了登录路径,这部分没问题。

补充说明

通过DRF UI生成的令牌之所以能正常使用,是因为DRF UI的登录流程已经自动帮你完成了“Google令牌→Django令牌”的转换步骤,而Postman直接拿到的是原始Google令牌,缺少这一步转换,才会出现invalid token错误。

内容的提问来源于stack exchange,提问作者kcEmenike

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 03:11:50