Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

robertzhang/WeaWorking

Repository files navigation

WeaWorking项目简介

项目将会不定期更新,内容不和谐请谅解并忽略......

1.项目构建原因

WeaWroking项目起初立项的原因有两个:

  • 团队任务管理系统web版,希望能有移动端的产品
  • 用于锻炼Android应用程序框架编写的能力,这里主要用到的是MVP

1.1需求分析

使用人:团队成员
使用目的:丰富WeaWroking任务管理系统的使用类型
针对已有的WeaWroking web程序进行功能移植,使其能够在移动设备上使用。介于目前web版的WeaWroking已经可以正常使用,所以移动端的设计主要是按照已有的功能来设计。
需求分为:

  • 后端提供API接口,这部分需要先整理需要的数据,然后协调设计接口
  • 移动界面设计为左右滑动抽屉。左抽屉用来展示频道和团队人员,右抽屉用来展示任务。任务分为todo,doing,done三个部分,所以此模块使用viewpager。详细的设计见代码

1.2需求设计

to be continue......

2.项目结构

2.1 MVP

MVP是根据MVC传统设计模式的改进和强化而来。将数据和视图之间的联系进一步的减弱。Model和View的交互被隔离,必须要通过Presenter传递动作。这样的好处不言而喻,UI和数据可以分开管理,相互之间的修改几乎不会影响对方。

2.2 Model的设计

Model的作用是存放数据,我们姑且将Model理解为一个数据容器Dao。数据来源包括:DB和网络。
具体的接口包括:

  • model从DB中获取本地数据显示(网络异常)
  • model从远端服务器获取数据(正常情况)

2.3 Processor的设计

Presenter的作为中间件,工作内容相对复杂。具体可以分为以下几个模块:

  • 链接服务器,获取服务器数据
  • 网络异常,加载本地DB数据入缓存
  • 将加载成功的数据返回给UI刷新界面,并且更新本地DB
  • 缓存数据,提供数据接口给UI调用

3.项目后续设想

Oauth认证,结构优化,本地数据存储优化

OAuth相关文档供参考

首先了解一下OAuth 2.0的基本知识
理解OAuth 2.0

深入了解OAuth各个不同组件,这是一个台湾人写的。内容很丰富,建议可以深入学习
OAuth笔记

OAuth 2.0英文文档,相当详细
The OAuth 2.0 Authorization Framework

使用OAuth 2.0验证资源API
OAuth 2.0 教程: Grape API 整合 Doorkeeper

目前NET263使用的OAuth

*OAuth常见的认证流程

  • Authorization Code Grant Type Flow —— 认证码验证流程

  • Implicit Grant Type Flow —— 简单认证流程

  • Resource Owner Password Credentials Grant Type Flow —— 密码认证流程

  • Client Credentials Grant Type Flow —— 客户端认证流程

最常见和使用较多的是前两种。Net263现在的认证机制就是第一种Authorization Code Grant Type Flow。简单粗暴的区分前两种,就是看Client是否存在Server,如果存在Server则可以通过Server来保存Confidential。因为Net263现阶段的认证都是通过Web Browser,所以传统的Authorization Code Grant Type Flow是可以满足认证的。

*目前设想使用的认证方式

通过测试发现调用资源服务器的认证接口是无法获取token的。通过资源服务器(WeaWorking)登陆认证流程来说明。

  • 1、C(Client-浏览器)访问R(Resource Server-资源服务器)的认证接口 /users/auth/net263。该地址为omniauth认证。
  • 2、R将C重定向到A(Authorization Server-认证服务器)的认证接口 /oauth/authorize获取code,A将C重定向到R事先定义好的CallBack
  • 3、R到A的/oauth/token获取token。
  • 4、R通过token到A中获取用户信息
  • 5、R给C返回index页面

根据上面的登陆流程可以看出,资源服务器直接从认证服务器获取token,Client并没用经手token。另外,现在的资源服务器直接使用token去获取数据也是不被允许的。

综上问题,现使用以下方案:

  • 客户端直接通过认证服务器的/oauth/authorize和/oauth/token获取token
  • 使用token在认证服务器获取user信息
  • 客户端向资源服务器API发送数据请求。需带参数:app_key,secret,user.email,其他查询的必要参数。

app_key和secret是为了确保非法客户端访问资源服务器;user.email告知资源服务器查询用户。

技术简介

开发环境

  • 开发环境

    • Eclipse & ADT
    • Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
    • Android 4.2
  • 辅助工具

    • GenyMotion V2.5.2
    • MWeb Lite V1.6.4

开源项目

  • GreenDao
  • Volley
  • SlidingMenu
  • Stickylistheaders
  • Sweetalertdialog
  • Textdrawable

说明

该项目只做学习交流使用,请不要做商业用途。

About

WeaWorking for android versions

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

AltStyle によって変換されたページ (->オリジナル) /