我正在为前端构建一个基于Angular的单页面应用程序,为后端构建sailsjs。现在我正在使用sails-auth(内部使用passportjs)将我的身份验证逻辑绑定到我的用户模型。
我在我的前端安装了多个护照提供商,例如passport-github
和passport-facebook
,还有经典的passport-local
,以便用户也可以注册并登录用户名和&密码。
我希望我的客户(单页应用程序,以及将来的其他人)在auth之后使用令牌而不是cookie /会话,以便更容易扩展,跨域请求也将更容易。它还将使移动集成变得更加容易。
我知道我必须为OAuth提供程序使用回调,这是我的目标:
我知道我可以用sessionAuth
策略替换我的sail-auth的tokenAuth
策略,该策略可以从标题中读取令牌并查询Tokens
模型,但是我的问题是:
policies/passport.js
显示默认情况下它依赖于内置会话来持久登录/序列化和反序列化userID。如何将其与sails内置会话分离,以便为用户生成令牌并使用嵌入的令牌回送我的索引?提前谢谢!
答案 0 :(得分:1)
在身份验证路线上,您可以在后端(without session)进行基于passport.js的身份验证,使用tokenAuth
的令牌并将令牌转发给用户。
然后,对于安全路线,您可以在政策中放置verifyToken
来电(截取每条路线)。
免责声明:我自己还没试过。
答案 1 :(得分:0)
我一直在使用这些步骤。
第1步(全局):$ npm install -g sails
第2步(应用程序):$ sails new myApp
步骤3(文件):将https://github.com/carlospliego/sails-token-auth-setup中的每个文件复制到相应的文件夹
步骤3A要使另一个身份验证策略只在app / policies /目录中添加另一个文件
这是一个可能是什么样子的例子
module.exports = function hasValidProductApiToken(req, res, next) {
if(someCondition){
next(); // Call next to continue
}
};
步骤4(策略):将此代码添加到config / policies.js
'*': "hasToken",
UserController: {
"create": true
},
AuthController: {
'*': true
}
步骤5:更改config / tokenSecret.js的值
第6步:(依赖关系)
您的终端将如下所示:
以下是有关如何在风帆中创建基于令牌的身份验证的精彩指南:https://github.com/carlospliego/sails-token-auth-setup