V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
AlloVince
V2EX  ›  分享创造

近期作品:EvaOauth一个php的Oauth2.0&Oauth1.0登录模块,支持10+站点,统一接口

  •  
  •   AlloVince ·
    AlloVince · 2012-11-30 10:47:27 +08:00 · 3497 次点击
    这是一个创建于 4412 天前的主题,其中的信息可能已经有所发展或是发生改变。
    比起其他的库来说:

    1. 支持站点相对多一些,后续还会继续追加
    2. 接口是统一的,无论Oauth2.0还是Oauth1.0,无论哪个站点,代码都完全一致,只需要切换Adapter。同时最终得到的Token格式也一致。

    缺点可能是依赖的库稍微多一些,不过可以使用composer.phar一键安装。

    还在继续完善中,欢迎意见建议/Pull Request

    http://avnpc.com/pages/evaoauth
    5 条回复    1970-01-01 08:00:00 +08:00
    AlloVince
        1
    AlloVince  
    OP
       2012-12-03 16:20:16 +08:00
    修复一些问题,继续增加了LinkedIn和Flickr,有其他站点需求的可以提出来优先添加
    anyforever
        2
    anyforever  
       2012-12-03 16:39:32 +08:00
    @AlloVince 可以分开发布,国内用户的话,整合太多国外的必要性不大,都被墙了,大部分基础用户都不会翻墙啊。
    anyforever
        3
    anyforever  
       2012-12-03 16:44:59 +08:00
    简单看了一下,依赖的包太多了,还不是独立发布的,恐怕会影响这个功能性的宣传推广
    AlloVince
        4
    AlloVince  
    OP
       2012-12-04 15:34:56 +08:00
    @anyforever 其实程序大都可以分两类,一类大而全,一类少而精,EvaOauth的定位是前者。

    Oauth现成的类库已经很多了,之所以还要写这样一个东西,因为我在segmentfault上有过一个简单的分析,集成Oauth登录到现有系统其实是一件非常劳民伤财的事情。

    http://segmentfault.com/q/1010000000131066#a-1020000000131151

    如果你尝试过在项目中集成2个以上的第三方登录,Oauth登录中种种的问题和坑就会让你不胜其烦,唯一能让问题变得简单的方法是统一接口,在开发中用一个方法去搞定所有第三方网站,而不是一个一个去Hack、调试、找文档,这也是EvaOauth的最主要目的。

    EvaOauth已经统一了从发起请求到获得Access Token为止的接口,之后还会对API做统一封装,这是另一个模块EvaWebservice要做的事情,目前还在开发阶段:

    https://github.com/AlloVince/eva-engine/tree/master/module/Webservice

    至于依赖的问题,就看实际项目中的取舍了,Oauth一般不涉及到高并发或者复杂的业务逻辑,一般都可以作为一个独立功能提取出来。如果EvaOauth能帮助解决90%的问题,那么多用1分钟时间,执行一行安装依赖的指令还是很划算的。

    ----

    今天新增了
    Disqus
    Foursquare
    Yahoo
    Dropbox
    anyforever
        5
    anyforever  
       2012-12-04 21:46:59 +08:00
    如果用原生php来开发就好了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2768 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 19ms · UTC 12:19 · PVG 20:19 · LAX 04:19 · JFK 07:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.