sails + waterlock,如何使用相应的 HTML 模板实现工作流

sails + waterlock, how to implement the workflow with corresponding HTML templates

背景

大约 6 个月前,我开始使用 Sails 开发 Web 应用程序。 我希望使用 sails-authsails-generate-authsails-permissions 轻松实现身份验证和权限。 6 个月后,我意识到这些模块不再得到很好的维护。我决定回退使用 Waterlock

问题

I am newbie when it comes to NodeJS, Express & Sails. Coming from Rails, I had biased expectation. I need to be taken by the hand...

我能够正确安装 Waterlock,并且能够使用 API.

1。登录

POST http://localhost:1337/auth/login

form-data 中传递 emailpassword(请参阅下面的屏幕截图):

返回(在 POSTMAN 中):

{
  "auth": {
    "password": "aswWYJLZ.KbKWA9.8Hg8eOr.8HiCBiddWDyHyGSB3y7bluJZwvjDS",
    "email": "my.email@mydomain.com",
    "createdAt": "2016-10-04T13:01:17.594Z",
    "updatedAt": "2016-10-04T13:01:17.607Z",
    "id": 12,
    "user": 13
  },
  "createdAt": "2016-10-04T13:01:17.603Z",
  "updatedAt": "2016-10-04T13:01:17.603Z",
  "id": 13
}

我想我的用户是连同他的加密密码一起创建和存储的。

下一步 我尝试实施 UI(这就是我需要指导的地方):

UserController.js:

'new': function(req, res) {
    res.view();
},

user/new.ejs:

<h1>Sign up</h1>
<form action="/auth/login" method='POST'>
    <input type='text' placeholder='me@mydomain.com' name='email'>
    <input type='password' placeholder='password' name='password'>
    <input type='submit' value="Create account">
</form>

问题 1:在 create/login 用户即 auth/login 之后,如何重定向到另一个 URL? 例如刚创建的用户的 /user/show/:id id

我尝试将 login 操作添加到 AuthController,但这只是覆盖了实际有用的操作。

UPDATE: I found that waterlock.js has Post actions hooks, but still don't know how to redirect to /user/show/:id of the user just created or logged in.

问题 2:我不应该删除返回的 "password": "a$...ZwvjDS", 吗?

2。智威汤逊

好的,JSON Web 令牌。所以我通过了身份验证,接下来我创建了一个 JWT,我可以在下一个请求的 header 中传递它。

与POSTMAN

POST http://localhost:1337/user/jwt

{
  "token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpc3MiOiIxM3x1bmRlZmluZWQiLCJzdWIiOiJzdWJqZWN0IiwiYXVkIjoiYXBwIG5hbWUiLCJleHAiOjE0NzYxOTIxNDc3OTgsIm5iZiI6MTQ3NTU4NzM0Nzc5OCwiaWF0IjoxNDc1NTg3MzQ3Nzk4LCJqdGkiOiI5ODgyYWY2MC04YTM1LTExZTYtODI0Yy1mNTZhYWE0MDhiZmIifQ.GYT4f49ggW8VwaEqTy0JskX6nHWZUMvM0A92KD1EC4I",
  "expires": 1476192147798
}

问题3:我通过了身份验证,创建了一个session对吗?为什么我需要 JWT?比sessionAuth好吗?

居然找到了我的答案here

问题4:LOGIN后,我需要POST http://localhost:1337/user/jwt获取JWT。我应该如何在 Sails 中实现它?

3。我如何使用我的 access_token

问题 5:我在哪里存储 access_token 并在下一个请求中使用它? (Sails 的最佳实践)

广告。 2)当然可以。客户不应该访问他的加密密码

广告。 4) JWT 应该在服务中,没有控制器,因为这是更安全的方式。所以,是的。它应该在服务器端完成,客户端不应该访问 JWT 逻辑。

广告。 5)随便你。恕我直言 header 是最好的地方。