首页 | 新闻 | 新品 | 文库 | 方案 | 视频 | 下载 | 商城 | 开发板 | 数据中心 | 座谈新版 | 培训 | 工具 | 博客 | 论坛 | 百科 | GEC | 活动 | 主题月 | 电子展
返回列表 回复 发帖

精通 MEAN 使用 OAuth 和 Passport 管理身份验证(6)

精通 MEAN 使用 OAuth 和 Passport 管理身份验证(6)

将组织 OAuth 密钥添加到您应用程序中拥有两个密钥(公钥和私钥)之后,可将通过环境变量将它们添加到您的应用程序中 — 非常类似于 “ ” 中更改 PORT 的方式。
回想一下,您可设置会基于您的运行模式而更改的变量:development、production 或                test。特定于环境的值存储在 config/env 中。在文本编辑器中打开                config/env/development.js。复制/粘贴 Facebook 代码块,针对 Meetup 而相应地调整它(如清单 13                所示)。确保这里的属性名称与您在 config/strategies/meetup.js 中的 passport.use                函数调用中使用的属性名称相同。
清单 13. config/env/development.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
'use strict';

module.exports = {
    db: 'mongodb://localhost/test-dev',
    app: {
        title: 'HTML5 Denver'
    },

    meetup: {
        consumerKey: process.env.MEETUP_KEY || 'APP_ID',
        consumerSecret: process.env.MEETUP_SECRET || 'APP_SECRET',
        callbackURL: 'http://localhost:3000/auth/meetup/callback'
    },   
    facebook: {
        clientID: process.env.FACEBOOK_ID || 'APP_ID',
        clientSecret: process.env.FACEBOOK_SECRET || 'APP_SECRET',
        callbackURL: 'http://localhost:3000/auth/facebook/callback'
    },
    twitter: {
        clientID: process.env.TWITTER_KEY || 'CONSUMER_KEY',
        clientSecret: process.env.TWITTER_SECRET || 'CONSUMER_SECRET',
        callbackURL: 'http://localhost:3000/auth/twitter/callback'
    },
    google: {
        clientID: process.env.GOOGLE_ID || 'APP_ID',
        clientSecret: process.env.GOOGLE_SECRET || 'APP_SECRET',
        callbackURL: 'http://localhost:3000/auth/google/callback'
    },
    linkedin: {
        clientID: process.env.LINKEDIN_ID || 'APP_ID',
        clientSecret: process.env.LINKEDIN_SECRET || 'APP_SECRET',
        callbackURL: 'http://localhost:3000/auth/linkedin/callback'
    }
};




可将 APP_ID 和 APP_SECRET 替换为您在上一节中获取的硬编码的                consumerKey 和 consumerSecret                值。但一种更安全的解决方案是,通过环境变量将这些值提供给 UGLI 应用程序。要使用您组织的 consumerKey 和                consumerSecret 来启动您的应用程序,可键入:
1
MEETUP_KEY=l75fkklhurkack36eelfhhfhjc MEETUP_SECRET=abcdeg316jd3ni43f21u1abcde NODE_ENV=development grunt




在上线之前不要忘记对 config/env/production.js 执行类似的调整。如果之前创建了一个用户帐户,一定要从 MongoDB 中的                html5-denver-dev 数据库中删除它,以便可以再次执行新帐户创建过程。
结束语Larry Wall(Perl 编程语言的创建者)有句至理名言,“容易的事应该是简单的事,艰难的事应该是可能的事。” 我希望这种态度很好地总结了您连接                OAuth 和 Passport,使用 Meetup.com 满足您的分布式身份验证和授权需要的体验。
在下一期精通 MEAN 中,我将介绍构建于 MEAN 堆栈中的测试基础架构。您将学习使用 Mocha 执行服务器端测试,使用                Jasmine 执行客户端测试,还将学习使用 Karma 跨多个浏览器运行您的测试。请届时继续阅读 “精通 MEAN”。
返回列表