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

能否通过Selenium登录应用获取Bearer Token用于API调用?

解决方案:获取登录后的Bearer Token(针对加盐密码未知场景)

一、通过Selenium登录后提取Token(可行且直接)

你已经尝试过JavascriptExecutor,其实可以从几个常见存储位置入手:

  • LocalStorage/SessionStorage提取:多数前端会把Bearer Token存在这两个地方,用Selenium执行JS直接读取:

    // Java示例:读取LocalStorage中的认证Token
    String bearerToken = (String) ((JavascriptExecutor) driver).executeScript("return localStorage.getItem('authToken');");
    
    # Python示例:读取SessionStorage中的Bearer Token
    bearer_token = driver.execute_script("return sessionStorage.getItem('bearerToken');")
    

    提示:键名可能是token、authToken、bearerToken这类,先打开浏览器F12的Application面板确认具体键名。

  • Cookie提取:如果Token存在Cookie里,直接获取对应Cookie的值:

    Cookie tokenCookie = driver.manage().getCookieNamed("auth_token");
    String bearerToken = tokenCookie.getValue();
    
    token_cookie = driver.get_cookie('auth_token')
    bearer_token = token_cookie['value']
    
  • 捕获登录请求响应:登录时打开F12的Network面板,找到登录接口的响应(比如/api/login),查看响应头或响应体里的Token。用Selenium配合浏览器性能日志,或者代理工具捕获这个请求的响应内容,从中提取Token。

二、关于加盐密码生成器(不推荐,难度极高)

不清楚加盐逻辑的话,这条路基本走不通:

  • 加盐逻辑可能是前端动态生成盐(比如结合时间戳、请求返回的随机值),或者用特定加密算法(MD5、SHA256+固定盐),你需要逆向前端JS代码才能还原,但这不仅耗时,还可能涉及应用的安全限制。
  • 就算你抓包拿到某次加密后的密码,只要盐是动态的,下次登录这个加密值就失效了,没法复用。

总结

优先用Selenium登录后从LocalStorage/SessionStorage或Cookie提取Token,这是最省心的方案。如果这些位置都没有,再考虑捕获登录请求的响应来获取Token。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 18:35:16