## 0 首先要知道源网站登录后Cookie的变化
下面第1张图是chrome核浏览器-开发者工具Network面板-源网站未登录账号时网页如 `http://www.missevan.com/` 的Cookies信息,第2张图是登录账号后自动跳转回刚才登录前网页 `http://www.missevan.com/` 的Cookies信息,对比后发现多了token这一栏。
![](https://box.kancloud.cn/42d41ee5a5c0892a6d9a19170402149e_435x249.png)
![](https://box.kancloud.cn/e96e9b0e3cc3b225147a8cbeb67c619d_432x207.png)
<br>
## 1 插件(本节都是schema="1"的插件)xml部分的meta节点里加上login节点
login节点的url属性是填源网站有登录框页面的网址,也就是在 `http://www.missevan.com/` 页面点击登录按钮后进入的网址,backurl表示登录后会自动跳转回之前的网址;check属性是通过对应的js函数检查是否已登录;auto属性是设置是否自动检查登录状态并跳出登录窗口(0是关闭,1是打开,建议关闭因为不是人人都有账户想登录的);run="web"表示用app内置浏览器打开login节点的url,不要修改,这样才有登录框给用户填写。示例代码如下:
```xml
<meta>
......
<encode>xx</encode>
<about>
<item/>
</about>
<login run="web" url="https://www.missevan.com/member/login?backurl=https%3A%2F%2Fwww.missevan.com%2F" check="login_check" auto="0" />
</meta>
```
<br>
## 2 插件js部分(code节点里)加上对应的check函数,如下
```javascript
<code>
<![CDATA[
function login_check(url, cookies) {
if (!cookies) {
return '0';
}
if (cookies.indexOf('token=') > 0) {
return '1';
} else {
return '0';
}
}
......
......
]]>
</code>
```
<br>
## 3 如果book节点的原网页须要登录后才显示一些章节
须要在xml部分的book节点里名加上属性 `header="cookie;referer"` (v34引擎起的header格式是 `header="cookie $$ referer"` ),才能利用好从登录节点收集过来的cookies。
(本节完)
- 序言
- 第一章 基础
- 1.1 Html基础
- 1.2 CSS选择器
- 1.2.1 标签选择器
- 1.2.2 class/id选择器
- 1.2.3 属性选择器
- 1.3 JavaScript基础
- 1.4 json基础
- 第二章 中级
- 2.1 插件结构总览
- 2.2 meta头部节点讲解
- 2.3 main主体节点讲解
- 2.4 script脚本节点讲解
- 2.5 插件的安装调试与发布
- 第三章 高级
- 3.1 插件高级特性
- 3.2 常见内容保护突破方法
- 3.3 开发文档所没说的事
- 3.4 电脑js脚本测试插件
- 3.5 加login节点教程
- 3.6 使用yeoman生成器
- 3.7 自动化发布插件
- 第四章 附录
- 4.1 markdown基本用法