5

我刚刚开始使用sails 并正在尝试实现身份验证。我安装了建议的所有东西,然后用jade创建了一个简单的登录表单:

form(action="/auth/local", method="post")
     div
        input(name="identifier" type="text")
     div
        input(name="password" type="password")
     div
        input(type="submit")

这记录authentication successful并将我转发到页面,返回

{
  "createdBy": 1,
  "owner": 1,
  "username": "admin",
  "email": "admin@example.com",
  "id": 1,
  "createdAt": "2015-09-25T18:14:20.000Z",
  "updatedAt": "2015-09-25T18:39:30.000Z",
  "gravatarUrl": "https://gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61"
}

现在我想将新登录的用户重定向到任何页面,所以我尝试将表单的操作更改为

/auth/local/login

重定向到 /login,但记录

warn: Error: Invalid action

服务器端。

在我的 config/routes 文件中,我有一条这样的路线:

"/login" : {
    view:"login"
}

登录后在帆中设置重定向的正确方法是什么?

4

1 回答 1

3

使用/auth/local/login,它试图login为护照本地策略采取行动。但正如您从源代码中看到的那样,本地策略具有三个动作:

register:此方法从指定的电子邮件、用户名和密码创建一个新用户,并为新创建的用户分配一个本地 Passport。

connect:此功能可用于将本地 Passport 分配给尚未拥有本地 Passport 的用户。如果用户使用第三方服务注册并因此从未设置密码,就会出现这种情况。

disconnect:从用户断开通行证

对于其他操作,它将引发Invalid action错误。

成功登录后重定向的正确方法是使用next查询参数

/auth/local?next=login
于 2015-10-26T00:14:06.100 回答