跳转至

强制 Authany 显示登录页面

用户登录 / 注册 Authany 时,通常由您的应用向授权端点发起请求开始,进而跳转到登录或注册页面。

如果用户在浏览器上已经登录,单点登录功能会改为显示如下的「继续屏幕」(Continue Screen)。

如果您的应用不想使用单点登录功能,而是始终显示登录 / 注册页面,可以在 authorize 端点使用 prompt="login" 强制 Authany 显示登录页面。

如何强制 Authany 显示登录页面

OIDC 规范中定义的 prompt="login" 参数可以强制 AuthUI 显示登录页面。Authany SDK 提供了 prompt 参数,可用来设置 prompt="login"。一旦将 prompt 参数设置为 login,当您的应用调用 SDK 的 authenticate 方法时,Authany 将始终显示登录页面。

以下代码展示了如何在 Authany SDK 中设置 prompt: "login":

import { PromptOption } from "@authgear/nextjs";

// via hook
const { signIn } = useAuthgear();
signIn({ prompt: PromptOption.Login });

// via component
<SignInButton signInOptions={{ prompt: PromptOption.Login }}>Sign In</SignInButton>
authgear
  .startAuthentication({
    redirectURI: "<AUTHGEAR_REDIRECT_URI>",
    prompt: PromptOption.Login,
  })
authgear
  .authenticate({
    redirectURI: 'com.reactnativeauth://host/path',
    prompt: PromptOption.Login,
  })
AuthenticateOptions options = new AuthenticateOptions("<AUTHGEAR_REDIRECT_URI>");
List<PromptOption> promptOptions = Arrays.asList(PromptOption.LOGIN);
options.setPrompt(promptOptions);
mAuthgear.authenticate(options, new OnAuthenticateListener() {
    @Override
    public void onAuthenticated(@Nullable UserInfo userInfo) {

    }

    @Override
    public void onAuthenticationFailed(@NonNull Throwable throwable) {
        Log.d(TAG, throwable.toString());
    }
});
authgear?.authenticate(
    redirectURI: "<AUTHGEAR_REDIRECT_URI>",
    prompt: "login"
)
_authgear.authenticate(
        redirectURI: "<AUTHGEAR_REDIRECT_URI>",
        prompt: "login",
      );