Archive for the 'Chrome扩展' Category

Chrome扩展中如何进行安全的OAuth(2.0)授权

无论如何把Consumer key和Consumer Secret存到客户端都是不安全,正确的做法还是放到服务器上。
阅读这篇文章前读者需要先了解OAuth。
OAuth授权方式对用户来说是较为安全的,而且OAuth 2.0修复了OAuth 1.0中的一些安全缺陷,变得更加安全了。
最近我刚好想做一个Chrome浏览器上的微博插件,提供微博的一些基本功能,例如消息提醒、查看更新等。在做这些之前我得先在我的Chrome扩展中加入微博OAuth 2.0的授权机制。于是我就想到了唯一一个支持微博OAuth 1.0认证方式的Chrome经典插件——Fawave,在阅读Chrome上的经典微博插件Fawave源码的过程中,发现它把App Key(Consumer Key)和Consumer Secret存储在了用户本地。这对用户来说没啥关系,但对应用开发者的似乎有些影响。比如遇到一个像我这样别有用心的人,一旦拿到key+secret+access_token(三者缺一不可哦),就可以拿着Fawave的名号去干一些坏事,比如骚扰用户等等。这样开发者所开发的应用就被无故抹黑了。所以OAuth授权最好还是要通过服务端来进行(Consumer Key和Consumer Secret应存放服务端)。
那么我们如何在用户授权后拿到access_token呢?很简单,只要把Chrome扩展内建支持的content_script注入到你的回调页面上,再通过该脚本直接获取url中的access_token就可以了。例如我的回调页面是http://mweibo.sinaapp.com/callback.php,那么在扩展中的manifest.json中加入:

{
  "name": "My extension",
  "content_scripts": [
    {
      "matches": ["http://mweibo.sinaapp.com/callback.php*"],
      "js": ["get_access_token.js"]
    }
  ]
}

在get_access_token.js中,通过:

var access_token = location.href.split('code=')[1];

来获取access_token,接着我们就可以在Chrome插件中拿着access_token直接请求微博接口了。

老婆,快出来见上帝:cnBeta月光宝盒

呵呵,本来是想自己知道就好,低调点。但既然有那么有趣的网友,那我也幽默点吧。
baby come out see the god
不知从何时开始,cnBeta上的评论有了48小时的保鲜期,过了48小时,任何曾停留在页面上的喧嚣,都会消隐不见。
cnBeta月光宝盒——轻轻一点,昨日重现(甚至都不用点)。
cnBeta月光宝盒-screenshot

扩展安装地址:https://chrome.google.com/extensions/detail/nkgjnkanhkhlallldojlbekikmeefcje
目前服务端暂放在SAE,万一哪一天被X了,或者“云豆”不够用了,那么“cnBeta月光宝盒”将何去何从呢,这是一个要考虑的问题…

(低调地)再发布一个chrome扩展_腾讯微博Chrome地址栏发布工具

一键禁用所有扩展cnBeta月光宝盒之后,哥的第三款chrome扩展——腾讯微博地址栏发布工具正式发布。。
PS:其实这个创意是来自我的师兄天祁小朋友的新浪微博地址栏客户端,欢迎大家关注他的微博@代码诗人天小祁。。
你可以在chrome地址栏 按 T+空格+内容+回车来发微博!
用T+空格+@+来查看和回复最新@me
用T+空格+home+来查看和回复最新微博
腾讯微博地址栏客户端
安装地址:https://chrome.google.com/extensions/detail/fhnonpihhkcldnjmhpjljkahoegilaep

一键禁用所有扩展——重量级的chrome扩展

今天给大家推荐一个我自己写的chrome扩展——一键禁用所有扩展

One Key Disable Plus

扩展安装地址:https://chrome.google.com/webstore/detail/ejhdjfmkegkpenillofhpmikailkjpkb

之所以写这个扩展是有原因的。作为一名前端开发者,我使用Chrome和Firefox进行调试,同时装了很多功能强大的扩展/插件。然而我发现在使用Chrome进行调试的过程中,很多插件都会往页面加入一些额外的标签,这样就不利于我们调试和查看页面源代码。我需要一个能够一键禁用所有扩展的插件。后来经过用户调研,发现作为前端开发者和发烧友,可能还需要方便地对扩展进行逐个关闭、开启、乃至卸载的操作,于是就有了这个扩展。

现在这个扩展支持一键禁用/开启全部扩展展,也支持扩展的逐个禁用、开启、右击卸载扩展,支持中英两种语言。

大家有什么功能上的需求还可以与我联系,欢迎交流。