密钥和访问令牌JWT在快递以及与Facebook的NodeJS我有两个应用:维持在REST API
- 服务器(REST API服务器)
- 节点JS
- 快递
- jsonwebtokens
- express-jwt
- 猫鼬
- 客户端(便携式前端)
- 自举
- 角JS
- 本地存储
- 角的Facebook
- 角JWT
Lateron,客户端应用程序将移植到Android,iPhone和其他平台使用phon EGAP。对于OAuth,我使用Facebook作为提供者。现在,我刚刚意识到JSON Web Tokens是这种设置的方式。我的问题是架构问题而不是语法问题 - 如何在使用nodejs中的JWT签署Facebook访问令牌和用户ID时管理密钥?
因此,这是流在我的应用程序是如何工作的:
- 角客户有一个登录按钮
- 用户点击按钮> Facebook的身份验证开始
- 客户接收user_id说明和FB访问令牌
- 客户端发送[POST json主体] ser_id和访问令牌节点+ Express服务器在'http://server.com/auth/login'
节点服务器已申请快递,智威汤逊的所有路线,除了/认证/注册有
VAR expressJwt = require('express-jwt');
var jwt = require('jsonwebtoken'); ({secret:''})。except({path:['/ auth/login']}));
节点服务器从req.body接收数据,使用
VAR令牌= expressjwt它提取使用JavascriptSDK来自Facebook的所有配置文件的细节,和标志。标志({profile},);
- 节点服务器存储(更新,如果USER_ID存在)的新令牌中分贝并且将其作为响应于客户
- 客户将其存储为在本地存储 JSON数据接收的新令牌
- 客户端使用角JWT从新令牌提取轮廓数据,并自动连接在授权报头的新的令牌用于将其发送到服务器
现在,我的问题是:
- 我真的需要将JWT标记存储在数据库中吗?我当然不会将请求标头中的标记与数据库进行比较
- 每次有人登录时,是否需要为安全生成随机密钥?如果是的话,那么客户端和服务器会如何呢?
- 何时何地需要检查令牌过期?以及如何刷新它?
我有点迷失了设计流程和机制。
所以现在终于你怎么做呢??你使用一些数据库来存储撤销令牌或什么?请回复一定会对我真的有帮助 – 2016-01-13 22:36:18