sails + waterlock,如何使用相应的 HTML 模板实现工作流
sails + waterlock, how to implement the workflow with corresponding HTML templates
背景
大约 6 个月前,我开始使用 Sails 开发 Web 应用程序。
我希望使用 sails-auth
或 sails-generate-auth
和 sails-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
中传递 email
和 password
(请参阅下面的屏幕截图):
返回(在 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 是最好的地方。
背景
大约 6 个月前,我开始使用 Sails 开发 Web 应用程序。
我希望使用 sails-auth
或 sails-generate-auth
和 sails-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
中传递 email
和 password
(请参阅下面的屏幕截图):
返回(在 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 是最好的地方。