我写了一个nodejs应用程序,我想用作一个Web应用程序,以及一个API提供程序。一旦用户通过身份验证,我想为该用户分配一个令牌以用于后续请求。这工作伟大与护照的Web应用程序,因为我只是序列化和反序列化用户与会话中的令牌。但是,当响应API请求时,没有设置用于存储会话信息的cookie。理想情况下,护照会在会话和请求体中查找令牌。有什么办法配置护照来完成这个吗?
解决方法
只需在每个请求中使用访问令牌。不需要使用会话。以下是工作流程:
POST /signin
>用户名和密码发布在客户端请求中。
>服务器通过使用护照的本地策略来验证用户。见passport-local。
>如果凭证表示有效的用户,则服务器返回由某个生成器生成的访问令牌。 node-jwt-simple是一个不错的选择。
>如果凭据无效,请重定向到/登录。
当客户端从授权服务器接收到访问令牌时,它可以向服务器上的受保护资源发出请求。例如:
GET / api / v1 / somefunction?token =’abcedf’
>客户端使用token参数调用一些服务器api。
>服务器通过使用护照的承载策略来验证令牌。见passport-http-bearer。
参考文献
Make a secure oauth API with passport.js and express.js (node.js)