使用Selenium跳过页面登录:后端生成的access token如何应用?
使用已有Access Token结合Selenium跳过登录的实现方法
完全可以实现,核心思路是把你后端生成的有效access token写入浏览器对应域名的身份存储位置,模拟真实登录后的状态,无需走账号密码输入的登录流程。
前置准备
先手动登录一次目标站点,打开F12开发者工具的「应用」面板,确认你站点的token存储位置:
- 存储在Cookie中:查看对应域名下的Cookie列表,找到token对应的字段名
- 存储在本地存储中:查看本地存储(localStorage)/会话存储(sessionStorage)列表,找到token对应的键名
具体操作步骤
所有操作的前置要求:先启动Selenium驱动,访问一次目标站点的根域名路径(比如https://你的站点域名.com),这一步是为了让浏览器先建立对应域名的上下文,避免无法写入存储的问题。
场景1:token存储在Cookie中
使用Selenium自带的add_cookie方法写入即可,Python示例代码如下:
# 先访问站点根路径建立域名上下文 driver.get("https://your-domain.com") # 写入身份Cookie,参数和站点真实登录后返回的Cookie参数保持一致即可 driver.add_cookie({ "name": "access_token", # 替换为站点真实的token字段名 "value": "你后端生成的有效access_token值", "domain": ".your-domain.com", # 替换为你的站点域名,一级域名生效可前缀加. "path": "/", "secure": True, # 站点为HTTPS设为True,HTTP设为False "httponly": False # 和站点真实Cookie的httponly配置保持一致 }) # 写入完成后直接访问需要登录的页面,即为已登录状态 driver.get("https://your-domain.com/need-login/path")
场景2:token存储在localStorage/sessionStorage中
通过Selenium执行JS脚本写入存储即可,Python示例代码如下:
# 先访问站点根路径建立域名上下文 driver.get("https://your-domain.com") # 写入localStorage,key替换为站点真实的存储键名 driver.execute_script('window.localStorage.setItem("access_token", "你后端生成的有效access_token值");') # 如果token存在sessionStorage中,替换为以下代码 # driver.execute_script('window.sessionStorage.setItem("access_token", "你后端生成的有效access_token值");') # 写入完成后刷新页面或直接跳转需要登录的页面即可 driver.refresh()
注意事项
- 部分站点除access token外还会存储refresh_token、用户ID等辅助校验字段,手动登录后把所有身份相关字段按相同方式写入即可绕过校验
- 确保写入的token未过期,且权限匹配站点的登录要求
- 若写入后仍未进入登录状态,可打开Selenium启动的浏览器的开发者工具,检查存储内容是否正确写入,是否存在字段名、域名配置不匹配的问题
内容的提问来源于stack exchange,提问作者Urago
相关产品推荐
相关产品推荐

