2015-09-25 118 views
6

我刚开始使用sails并试图实现身份验证。我安装了一切像劝,然后创建了玉石一个简单的登录表单:如何使用sails-permissions登录后在sails中重定向

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": "[email protected]", 
    "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 

其重定向到/登录,但日志

warn: Error: Invalid action 

服务器端。

在我的config/routes文件我有一个这样的路线:

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

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

回答

4

/auth/local/login,它试图呼吁login护照本地策略的行动。但是从source本地策略中可以看到,本地策略有三个操作:

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

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

disconnect:从用户

对于其他操作,它会抛出Invalid action错误断开护照。

成功登录后重定向到正确的方法是使用next query parameter

/auth/local?next=login