Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >我的开源项目,趣享GIF源代码已正式公开

我的开源项目,趣享GIF源代码已正式公开

作者头像
用户1158055
发布于 2019-07-03 04:37:40
发布于 2019-07-03 04:37:40
6700
举报
文章被收录于专栏:郭霖郭霖

大家早上好,猪年春节将至,先跟大家拜个早年。

自从上个月发布了我编写了两年之久的开源项目趣享GIF的App版本,不少朋友都一直在博客、微信公众号上催问我什么时候开放源代码?为了能够尽量将源代码公开,我这一个多月也是没少忙活,基本上是每天下班就开始抓紧写代码,尽量能早一天是一天。

可能有些朋友不明白,项目不是已经开发好了吗,还有什么东西要写的呢?这是因为开源版和非开源版本在某些地方是不一样的,比如说非开源版本登录是使用的QQ、微信、微博这种第三方登录的方式,而开源版用不了,因为第三方登录一定要验证App的包名和签名才行,大家在各自电脑上打出来的APK包签名肯定是验证不通过的。

于是在开源版本中,我将登录方式改成了手机号登录,之所以我一直排斥做传统的账号密码登录功能,是因为这样还需要专门开发一套账号管理系统,包括设置密保问题,以及找回密码等功能,太过于麻烦。而使用第三方登录和手机号登录,就相当于把安全性问题交给了第三方解决,我这里就相对轻松了很多,用户登录也方便了很多。

手机号登录功能我一开始选用的是阿里云的短信服务,结果因为我开发服务器使用的语言是Ruby,而阿里云并没有提供Ruby的SDK,得用原始的HTTP方式来对接才行。但是阿里云短信服务的原始对接方式太复杂了,各种身份验证绕来绕去,我实在没搞定,最终换成了腾讯云的短信服务,在这方面着实花了不少时间。

除了修改了登录功能之外,我还调整了App的主题颜色,使用绿色作为开源版的主色调,还修改了几个由大家测出来的Bug。并且大家在试用了趣享GIF之后提出来了不少建议,本来我是想将这些建议也一一优化的,但是这样就肯定无法赶在春节之前开源出来了,最终我决定将这些建议缓一缓,先发一个初始的开源版,以后再慢慢进行版本迭代吧。

开源版本和之前发布的非开源版本功能基本是完全一致的,因此大家应该也体验的差不多了,我这里就简单再发几张截图吧。

可以看到,开源版的Logo以及整体App的主色调我都进行了调整。

手机号由于不方便在截图里面显示出来,登录功能就不跟大家演示了,总之如果这是一个已注册的手机号,那么登录成功后将会直接跳转至主界面,如果是未注册的手机号,那么会跳转到注册界面。

注册界面如下图所示:

由于这是非第三方登录的情况,我无法像第三方登录时那样自动获取到第三方账号的昵称和头像,因此昵称需要自己手动输入才行,头像使用的是一个系统默认的图标,当然大家后面可以再自行进行修改。注册成功会自动跳转到主界面。

浏览GIF界面如下图所示,这些大家应该都很熟悉了:

分享动画效果,可以将图片分享到QQ、微信、微博、或者保存到手机:

点赞动画效果:

发布GIF趣图:

应大家的建议,增加了一键回到顶部的功能,点击当前页面的Tab项即可一键回到顶部:

由于没有了第三方账号的头像,默认的个人主页界面可能并不会很好看,如下图所示:

但是你可以点击Fab按钮来对你的个人主页进行随意的定制,编辑出好看的个人主页:

设置界面如下图所示:

关于界面也进行了一些调整:

更多功能就不再向大家演示了,因为很多朋友对这个App已经很熟悉了。那么就话不多说,接下来进入到本篇文章最重要的部分,公开趣享GIF的源代码。目前趣享GIF已在GitHub上开源,大家可以随手点一下Star,算是对我的支持吧,项目主页地址是:

http://github.com/guolindev/giffun

另外需要提醒大家一点的是,趣享GIF的源代码仅供学习和交流使用,严禁用于任何商业用途,否则我将保持一切追究法律责任的权力。当然,如果你是通过这个App的源码学到了很多知识,然后应用到了自己的项目当中,这种我是非常欢迎的,但如果只是在我的源码基础上稍微改了改代码或者界面,然后就拿去用作赚钱目的,这种行为是不被允许的。

本来考虑到服务器安全的问题,我有想过客户端与服务器接口通讯的这部分代码不进行开源,但是后来仔细考量之后我还是决定将所有的源代码都进行公开。我不知道这样会不会导致一些我没考虑到的服务器漏洞暴露出来,但是请大家不要试图对我的服务器进行攻击,我不是专业的服务器开发人员,这个服务器的存在只是为了方便大家更好地学习。

好的,该讲的差不多都讲完了,最后祝大家猪年大吉。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019年01月29日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
登录重构小记
最近把小站的登录页面给重构了,之前的安全性存在很大问题,基本处于裸奔的状态,特此记录一下过程。
街角小林
2022/06/15
7870
登录重构小记
亿级用户中心的设计与实践
用户中心,顾名思义就是管理用户的地方,几乎是所有互联网公司最为核心的子系统之一。它的核心功能是登录与注册,主要功能是修改密码、换绑手机号码、获取用户信息、修改用户信息和一些延伸服务,同时还有登录之后生成Token以及校验Token的功能。下面我们从几个维度来拆解用户中心。
2020labs小助手
2021/03/08
1.2K0
Facebook第三方登录流程总结
一些国际的软件/网站支持的比较多的第三方登录是Google第三方登录、Facebook第三方登录等。这里记录下Facebook第三方登录的过程。下面是一个Facebook第三方登录流程示例:
DannyHoo
2020/04/24
31.9K3
Facebook第三方登录流程总结
统一多账户登录的方案
这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易、微信、QQ
php007
2019/08/05
1.6K0
统一多账户登录的方案
好奇一键登录是怎么实现的吗?进来了解一下?
但这种方式要求用户要记住自己的账号和密码,也就是有一个记忆成本。用户为了降低记忆成本,很可能会在不同平台使用同一套账号密码。从安全角度考虑,一旦某个平台的账号密码泄露了,会连累到该用户使用的其他平台。
Android技术干货分享
2020/04/24
1.6K0
好奇一键登录是怎么实现的吗?进来了解一下?
逻辑漏洞总结
本篇文章是博主个人在网络学习时收集整理总结的笔记,在文章末尾已经标明参考原文的链接,有问题可以私聊整改。
LuckySec
2022/11/02
1.9K0
逻辑漏洞总结
多账户的统一登录 实现全过程
这里的多账户区别于系统级别的,我们讲的多账户系统是指,在我们互联网应用当中,我们的应用会使用多个第三方账号进行登录,必须现在常用的APP(网易云音乐)登录方式包含:网易、微信、QQ
用户1516716
2019/08/07
4.2K0
多账户的统一登录 实现全过程
如何设计 user 表?加入第三方登录呢?
说起用户表 , 大概是每个应用/网站立项动工考虑的第一件事情 ; 用户表结构的设计 , 算是整个后台架构的基石 ; 如果基石不稳 , 待到后面需求跟进了发现不能应付 , 回过头来反复修改用户表 , 要大大小小作改动的地方也不少 ;
良月柒
2019/12/05
10.7K0
微信授权登录第三方APP小程序方法介绍
第三方登录,是指用户使用在其他程序上频繁使用的账号,来快速登录另一方程序,可以实现不用注册就快捷完成登录。
pak
2022/06/13
3.5K0
瑞吉外卖-移动端开发
目前市面上有很多第三方提供的短信服务,这些第三方短信服务会和各个运营商(移动、联通、电信)对接,我们只需要注册成为会员并且按照提供的开发文档进行调用就可以发送短信。需要说明的是,这些短信服务一般都是收费服务。
用户9615083
2022/12/25
8800
瑞吉外卖-移动端开发
开始一个新的 app 时,我在想些什么
文|xiaoxiao image.png 几年工作下来,我越发觉得,做好一个产品,有太多可以共用借鉴的范式和模块,而每个模块,也大多有比较成熟的外部解决方案。撇开大公司不说,对于一个小型乃至创业团队,在初期必须要把全部精力投入到核心业务模型的建设上去,对于外围需求的处理,很难做到完善、健壮,往往后期要重构。 相反的,如果初期把精力都在完善、探索外围需求的解决方案,对时间、人力的损耗也容易积少成多,耽误时间。而这些外围需求,有些是单纯的功能层面的,比如登录注册分享,也有工具层面的,比如持续集成、协作、沟通工具
BestSDK
2018/02/27
2.1K1
开始一个新的 app 时,我在想些什么
电商设计手册之用户体系
一直从事互联网电商开发三年多的时间了,回头想想却对整个业务流程不是很了解,说出去很是惭愧。但是身处互联网电商的环境中,或多或少接触了其中的各个业务,其次周边还有很多从事电商的同事和朋友,这都是资源。于是,我决定和我的同事、盆友们、甚至还有你们去梳理整个流程并分享出来,谈不上结果要做的多么好,至少在每一个我们有能力去做好的地方,一定会细致入微。
大愚
2020/06/28
1.2K0
电商设计手册之用户体系
"用户增长"--快速身份认证实现用户增长的技术和产品方案
"用户增长"--快速身份认证实现用户增长的技术和产品方案 1   引言 作为一个互联网产品,用户量的增长是一个非常重要的衡量指标。 这是一个集合了销售,市场,运营,技术的综合能力。 本文将以非技术部分
用户1170933
2018/01/05
2.1K0
"用户增长"--快速身份认证实现用户增长的技术和产品方案
浅谈App测试~带音频
(1)账号密码登录注册 注册过程: a.app收集账号和密码 b.app请求服务端接口提交账号 c.服务器端进行数据格式和账号唯一性验证 d.记录注册数据并返回给客户端 e.客户端接受到服务器端返回的信息成功则页面跳转,失败则返回错误编辑和提示,app显示提示 登录过程: a.app端收集登录信息发送给服务端 b.服务端校验账号密码正确性 c.正确则返回成功,app页面登录成功 d.如有错误根据错误编码和提示错误,app展示 测试点: a.输入正确的账号密码,可正常注册和登录 b.已注册用户再次注册 c.账号输入框对最大长度和格式应有校验(比如邮箱账号需要邮箱格式等) d.密码是否加密传输(可抓取请求查看) e.密码"****"展示 f.切换账号登录,检验登录的信息是否做到及时更新 g.多设备同时登录同一帐号时(iOS+iOS,Android+Android,iOS+Android),检查是否将原用户踢出 等等测试点太多 (2)验证码登录 登录过程: a.客户端手机号码后,点击"获取验证码"按钮 b.发请求给服务端,服务端会生成一条随机验证码,一般是一串数字,再调用短信接口,把验证码发送用户的手机端。 c.用户在前台相应输入框输入验证码,提交之后,后端会对用户提交的随机码和后台原先存储的验证码信息做对比,如果两者无误差,那么用户的身份得以确认成功,就返回给app成功。 测试点: a.输入正确的账号密码,可正常注册和登录 b.已注册用户再次注册 c.验证短信的接收是否及时; d.用验证码可正常登录; e.验证码错误时,是否有提示 f.频繁操作验证码发送,是否有次数限制 g.验证码有效期校验(一般有效期2分钟、5分钟) h.重新获取验证码入口 (3)第三方登录 第三方登录原理,Oauth2.0,一般采用的是授权模式。 测试点: a.用户从未注册,使用微信第三方登录 b.用户已有账户,使用微信第三方登录,用户使用微信扫描后,跳转到绑定账户页面,输入已注册的手机号,登录成功。 c.用户同时绑定多个第三方登录,用户绑定微信第三方登录后,再次使用微博第三方登录 d.重复绑定,比如用户账户已经绑定过一个微博账号了,再次用另一个微博账号绑定该账户。 其他需要注意的点: (1)密码输入错误次数限制:注册登录一般都有密码输入几次会把账号锁定,再次登录的时候会增加校验流程,比如验证码校验等; (2)常用设备维护:比如可以有三台常用设备,登录第四台的时候会有异常设备登录的逻辑,这个测试的时候需要关注 登录页面账号记忆功能,就是默认会记忆上次输入的账号 (3)有注册登录 ,就有注销用户,一个账号反复注册注销的操作。
Criss@陈磊
2019/10/16
1.1K0
如何开发QQ、微信第三方登录?
互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如:网易、微信、QQ等,我们把此称为多账户统一登陆。通过这篇文章, 我想阐释多账户登陆的技术方案细节,以及相应的表设计,流程设计。我这里不会有具体代码实现细节,只要方案做的对,有思路,代码咋写都不会太烂。
小林C语言
2019/08/05
5.6K0
如何开发QQ、微信第三方登录?
IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路
本文引用了“低调的码农”原创文章“多账户的统一登录”一文的部分内容,感谢原作者的无私分享。
JackJiang
2019/12/13
1K0
IM开发基础知识补课(七):主流移动端账号登录方式的原理及设计思路
1.第三方登陆
登录 javaweb中如何去维持登录状态 1.登录后 信息放入 session中 2.页面内验证session中是否有登录信息 3.如果有,不需要再次登录 4.如果没有,跳转登录页面 5.如果登录后点击注销,删除session中登录信息,并清除页面缓存(必要的) image.png javaweb中哪些情况我们的session会过期 1.过期-->很长时间没有去访问网站 2.主动关闭-->用处注销 3.切换浏览器 手机端如何维持登录状态 登录成功之后,在成功的结果里面会附加一个sessionKey/toke
六月的雨
2018/05/14
1.7K0
安卓刷机时代不再!魔趣开源项目创始人宣布:“决定删库跑路了”
整理 | 郑丽媛 出品 | CSDN(ID:CSDNnews) 封面图 | colorhub “刷机”,一个 00 后听着可能有些陌生,却能勾起许多 80 后、90 后青春记忆的词语——如今,它可能要进一步退出历史舞台了。 上周六,国内最大的安卓开源系统魔趣(MoKee) ROM 创始人高志鹏(网名为“马丁龙猪”)在微博宣布:“马丁龙猪今天决定删库跑路了。” 曾风靡全球的魔趣 ROM 相信对于以前经常混迹于刷机圈的安卓用户来说,魔趣这个名字并不陌生。 这是国内最大的非营利性开源ROM项目,并且与Cy
AI科技大本营
2023/04/06
7600
安卓刷机时代不再!魔趣开源项目创始人宣布:“决定删库跑路了”
如何设计 QQ、微信、微博、Github 等第三方账号登陆 ?(附表设计)
互联网应用当中,我们的应用会使用多个第三方账号进行登录,比如:网易、微信、QQ等,我们把此称为多账户统一登陆。
架构师修炼
2020/07/20
2K0
如何设计 QQ、微信、微博、Github 等第三方账号登陆 ?(附表设计)
Android登录系统设计
前段时间项目进入第一阶段的尾声,虽然登录方面的功能基本上已经完成开发,但是很乱,例如QQ登录等第三方登录有自己的缓存机制,本地的账号密码登录又是一种方式,邮箱手机号登录又是另一种方式,最终经过几个小时的逻辑推导,第一次在没有运行代码的情况下完成这个登录系统的开发,最终运行成功了,修改了一次没有初始化的情况,中间还出现了一些小插曲,最后完成这套系统的开发,目前app 已上线谷歌应用商店,欢迎大家来体验。
wresource
2022/07/27
1.5K0
Android登录系统设计
相关推荐
登录重构小记
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档