1

我们正在为 REST API 使用Play 2 身份验证插件,我想简单地返回 200 或 403 进行登录尝试。

该插件的代码如下所示:

public static Result loginAndRedirect(final Context context,
        final AuthUser loginUser) {
    storeUser(context.session(), loginUser);
    return Controller.redirect(getJumpUrl(context));
}

有没有办法在不分叉插件项目的情况下避免重定向?

4

2 回答 2

1

我只是在同样的场景中偶然发现,正如 nico_ekito 指出的那样,这可以通过扩展PlayAuthenticate.Resolver和覆盖来实现:

@Override
    public Call afterAuth() {
        return routes.Application.restAfterAuth();
    }

因此,您可以返回应用程序的任何路线。

于 2013-07-19T14:09:01.137 回答
1

我最终在控制器上处理了这个:

public static Result login() {   
    Result r = MyUsernamePasswordAuthProvider.handleLogin(ctx());
    if (r instanceof Redirect && PlayAuthenticate.getUser(session()) != null) {
        return ok();
    }
    return forbidden();
}

不过,可能有更好的方法来做到这一点。

于 2012-11-22T11:38:39.533 回答