项目地址

以身作则页面

此文为翻译+不难的牵线,不当之处敬请指出

hackathon是使用oauth认证的贰个种类,如今支持一大半国外主流网站

Modern Theme

Flatly Bootstrap Theme

API Examples

目录


特性


  • 地面认证 使用Email和密码
  • OAuth 1.0a 认证 认证twitter
  • OAuth 2.0 认证 认证Facebook, Google, GitHub, LinkedIn, Instagram
  • Flash通知
  • MVC架构
  • Nodejs集群扶助
  • Sass样式
  • Bootstrap 3 + Extra主题
  • 账号管理
    • 支持Gravatar
    • 个人资料细节
    • 更改密码
    • 密码找回
    • 重置密码
    • 链接复杂的OAuth策略到一个账号上
    • 删去账号
  • CSRF保护
  • 栗子 Facebook, Foursquare, Last.fm, Tumblr, Twitter, Stripe,
    LinkedIn and more.

桑土绸缪采纳


  • 急需安装MongoDB
  • 亟待设置Node.js
  • 怎么着设置
    • Mac OS X:
      Xcode
      (or OS X 10.9+: xcode-select –install)
    • Windows: Visual
      Studio
    • Ubuntu /Linux Mint: sudo apt-get install build-essential
    • Fedora: sudo dnf groupinstall “Development Tools”
    • OpenSUSE: sudo zypper install –type pattern devel_basis

注意:比方你是node或然express的初学者,提议先看看Node.js and Express
101
;别的,那还有二个对此零基础初学者不错的学科:
Getting Started With Node.js, Express,
MongoDB
.

开始


最简便易行的格局就是从github上克隆下来啦

# Get the latest snapshot
git clone --depth=1 https://github.com/sahat/hackathon-starter.git myproject

# Change directory
cd myproject

# Install NPM dependencies
npm install

node app.js

注意:自家墙裂(●˘◡˘●)推荐安上Nodemon。用上它,当你对代码有转移时,它会自行重启服务,很方便啊。安装之后,开启服务不要拔取node app.js,要使用nodemon app.js。这厮会自启服务器,那样您就绝不因为小小的改变而手动重启服务器了,大大节省时间啊。那样子安装:

sudo npm install -g nodemon

获得API


为了能应用APIS可能OAuth认证形式,你须求预备以下东西:Client ID, Client
Secret, API Key, or Username &
Password。那些东西你必要找第三方去申请才能博取。

Hackathon Starter 2.0
:
自家曾经把栗子中所有的那一个弄好了,你嫌麻烦,就直接用自作者的啊。可是别忘了你公布自身的网站依然APP时,换上本人的证照。

google申请格局

  1. 访问Google Cloud
    Console
  2. 点击Create Project(可以设置汉语习惯,那么就是创立项目了)
  3. 填项目名称,点Create
  4. 点击应用,找到APIs & auth(API管理),点击进入管理页面
  5. 在管理页面左侧找到Credentials (凭据)
  6. 点击Create new Client ID按钮(创制凭据中的OAuth客户端ID)
  7. 点击Configure Consent Screen(配置同意显示屏)
  8. 按本身的新闻填好保存
  9. 接下去新闻那样填写
  10. 美妙保存ID和密钥

注意:当您打算开发规范的拔取时,请申请新的施用,不要使用当地地址的运用


翻译:作者将专门开一篇介绍各大网站申请流程,暂时介绍谷歌(谷歌)


文件结构


名称 描述
config/passport.js Passport本地和OAuth认证,一个登录认证中间件
controllers/api.js /api的路由管理,包含所有的api栗子
controllers/contact.js 控制连接表单
controllers/home.js 控制首页
controllers/user.js 用户账户管理
models/User.js 基于Mongoose的用户数据库操作的模块
public/ 一些静态文件(比如字体,图片,css,js)
public/js/application.js 指定客户端js依赖
public/js/main.js 这里放置你的客户端代码
public/css/main.scss 你的应用自写的样式
public/css/themes/default.scss 用了bootstrap让它看起来更漂亮
views/account/ 登录,密码重置和侧边栏的模板
views/api/ Api栗子的模板
views/partials/flash.jade 错误、提示和成功的提醒信息
views/partials/header.jade 导航栏模板
views/partials/footer.jade 页脚模板
views/layout.jade 基础模板
views/home.jade 主页模板
.travis.yml Travis CI 积分
.env.example 你申请的API Keys ,tokens, passwords和数据库链接
app.js 主体文件
package.json NPM 依赖

注意:你不肯定非要按我那样做,作者只是提供一个板栗,你以为怎么方便就怎么来。

使用的包

包名 描述
async 帮助你异步编程的模块
bcrypt-nodejs 可以hash和盐化密码
bitgo 比特币钱包Api
cheerio 使用jQuery语法的爬虫模块
clockwork 定时SMS模块
connect-mongo express链接mongodb
dotenv 从.env file.加载环境变量
express 著名的nodejs网页框架
body-parser express4的中间件
express-session express4的中间件
morgan express4的中间件
compression express4的中间件
errorhandler express4的中间件
serve-favicon express4的中间件
express-flash 给express提供flash信息支持
fbgraph FB图形API
github-api githubAPI
jade express的模板引擎
lastfm Last.fm API
instagram-node instagram API
lob lob API
lusca CSRF中间件
mongoose MongoDB ODM
node-foursquare Foursquare API
node-linkedin LinkedIn API
node-sass-middleware sass 中间件
nodemailer node发邮件组件
passport 简单而优雅的登录认证
passport-facebook 登录FB的插件
passport-github 登录github的插件
passport-google-oauth 登录google的插件
passport-twitter 登录twitter的插件
passport-instagram 登录instagram的插件
passport-local 本地登录验证
passport-linkedin-oauth2 登录linkedin的插件
passport-oauth 允许oauth登录验证
paypal-rest-sdk PayPal API
request 简单的HTTP请求模块
stripe Stripe API
tumblr.js Tumblr API
twilio Twilio API
twit Twitter API
lodash 一个便利的js库
validator controllers/api.js做验证控制
mocha 测试框架
chai BDD/TDD
supertest HTTP
yui yahoo API

得力的工具和能源


统筹能源推介


nodejs库推荐


  • Nodemon
    代码改动服务活动重启
  • geoip-lite
    IP查询地理坐标
  • Filesize.js
    文件格式转换,比如filesize(265318); // "265.32 kB"
  • Numeral.js
    格式化数据
  • Node
    Inspector

    基于chrome开发者工具的调剂工具
  • node-taglib
    读取流行的音频格式
  • sharp
    调整 JPEG, PNG, WebP , TIFF等图片格式

客户端库推荐


  • Framework7
    创制IOS7 App的精彩而且做到的库
  • InstantClick
    通过在鼠标悬停时优先加载页面来加强页面访问速度
  • NProgress.js
    类似YouTube和Medium上的进程条
  • Hover
    特别棒的鼠标悬停CSS3样式动画
  • Magnific
    Popup

    基于jQuery的响应式灯箱插件
  • jQuery
    Raty

    评分插件
  • Headroom.js
    倘若不须要头文件,自动隐藏
  • X-editable
    在内联成分里直接修改
  • Offline.js
    检测用户互联网状态是否离线
  • Alertify.js
    优化alert和浏览器对话框样式
  • selectize.js
    优化select成分和input标签样式
  • drop.js
    适用于下拉框和其余浮动成分的有力的js和css库
  • scrollReveal.js
    揭露动画

技巧


  • 当安装模块时,可以增进–save,那样子就会活动写入package.json了
    例如 npm install --save moment

  • 当您有多少个异步职责须求开展,能够运用
    async.parallel()
    举个情景栗子,你可能要求在贰个回去页面模板从前,生成的数码须求2个有相关性的操作,那几个时候你就需求那几个了

  • 在数组中找到三个特地的目的? 你须要
    _.find
    .
    举个例证, 从数据库中取出一个twitter对象:
    var token = _.find(req.user.tokens, { kind: 'twitter' });

FAQ


当自家付诸表单时,出现403错误

你必要添加1个隐身的input成分在您的表单里
input(type='hidden', name='_csrf', value=_csrf)
可以参考pull request
#40

注意
以后只怕的缘故也有UCR-VL白名单了,换句话说,你可以指定一个特意的路由来通过CS途胜F验证

注意 2
对于动态U卡宴L白名单,借使您的代码含有req.originalUrl您须要定期测试

MongoDB连接错误,小编哪些修复

本条广阔的错误音信来自于app.js

mongoose.connection.on('error', function()
 { console.error('MongoDB Connection Error. Please make sure MongoDB is running.');
});

在运营app.js之前,你的MongoDB服务必须运维
可以在这里下载MongoDB,假使你是windows用户,那么移步这里.

小贴士:如若你总是须要一连互连网,你可以用
mLab 或者
Compose来取代本地安装数据库,那样你只须要在.env文件里立异数据库就行了。

当本身布置应用时,指示错误

兴许你未曾变动本地数据库链接。
尽管你在使用的是用地点链接,那么您不得不在当地利用数据库;当您安排在Heroku,OpenShift只怕其余的阳台上时,你的数据库不可以运维在localhost的链接下。

相关文章

网站地图xml地图