加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

angularjs – 保存密钥和访问令牌在快速和NodeJS与Facebook的Res

发布时间:2020-12-17 07:42:58 所属栏目:安全 来源:网络整理
导读:我有两个应用程序: 服务器(REST API服务器) 节点js 快递 jsonwebtokens express-jwt 猫鼬 客户端(便携式前端) 引导 角度JS 本地存储 角色facebook angle-jwt 后来,客户端应用程序将被移植到android,iphone和其他平台使用phonegap.对于OAuth,我正在使用Faceb
我有两个应用程序:

>服务器(REST API服务器)

>节点js
>快递
> jsonwebtokens
> express-jwt
>猫鼬

>客户端(便携式前端)

>引导
>角度JS
>本地存储
角色facebook
> angle-jwt

后来,客户端应用程序将被移植到android,iphone和其他平台使用phonegap.对于OAuth,我正在使用Facebook作为提供者.现在,我刚才发现JSON Web Token是这种设置的方式.我的问题是架构性的,而不是语法的 – 如何在nodejs中使用JWT签署Facebook访问令牌和用户ID时如何管理密钥?

所以这是流程如何在我的应用程序中工作:

角度客户端有一个登录按钮
>用户点击按钮> Facebook Auth开始
>客户端接收user_id和FB访问令牌
>客户端将[POST json body]将user_id和访问令牌发送到Node Express Server为’http://server.com/auth/login‘
> Node Server已将express-jwt应用于除auth / login之外的所有路由

var expressJwt = require(‘express-jwt’);

var jwt = require(‘jsonwebtoken’);

app.use(expressjwt({secret:”})),({path:[‘/ auth / login’]}));
>节点服务器从req.body接收数据,使用JavascriptSDK从Facebook获取所有配置文件的详细信息,并使用它进行签名

var token = expressjwt.sign({profile},);
> Node Server存储(更新,如果user_id存在)db中的新令牌,并将其作为响应发送给客户端
>客户端将本地接收的新令牌作为json数据存储在本地存储中
>客户端使用angular-jwt从新令牌获取配置文件数据,并将其发送到服务器的所有请求自动附加到授权头中的新令牌

现在我的问题是:

>我真的需要在数据库中存储JWT令牌吗?我肯定不会将请求标头中的令牌与数据库进行比较
>我需要为安全性生成随机秘密密钥,每次登录?如果是,那么如何适应客户端和服务器?
>何时何地需要检查令牌过期?和如何刷新它?

我对设计流程和机制感到失落.

广告1.您不必在数据库中存储JWT.用户ID可以是有效载荷的一部分,因此不需要它.

广告2.服务器端应用程序通常使用一个密钥来生成所有JWT.

广告3.检查您的API的每个请求上的令牌是否过期,如果令牌已过期,则不允许访问,返回401状态代码.客户端应用程序应提示用户获取凭据并请求新的JWT.如果要避免用户重新提交凭据,您可以发出刷新令牌,以后可以用于生成新的JWT.

JWT refresh token flow

http://bitoftech.net/2014/07/16/enable-oauth-refresh-tokens-angularjs-app-using-asp-net-web-api-2-owin/

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读