Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom auth guard: not setting isAuthenticated correctly #116

Open
shiny opened this issue Jun 9, 2024 · 0 comments
Open

Custom auth guard: not setting isAuthenticated correctly #116

shiny opened this issue Jun 9, 2024 · 0 comments

Comments

@shiny
Copy link

shiny commented Jun 9, 2024

While using @adonisjs/auth, I followed the documentation to write a custom auth guard. It works great, but there's a small issue:

after ctx.auth.authenticateUsing(['myCustomGuard']), the ctx.auth.isAuthenticated is still false

So, I checked the code for the access_tokens_guard. In its authenticate method, there is a snippet to update the local state:

/**
* Update local state
*/
this.isAuthenticated = true
this.user = providerUser.getOriginal() as UserProvider[typeof PROVIDER_REAL_USER] & {
    currentAccessToken: AccessToken
}
this.user!.currentAccessToken = token

/**
 * Notify
 */
this.#emitter.emit('access_tokens_auth:authentication_succeeded', {
    ctx: this.#ctx,
    token,
    guardName: this.#name,
    user: this.user,
})

return this.user

But in tutorial, it's not mentioned:

this.user = providerUser.getOriginal()
return this.getUserOrFail()

After I added this line, it worked:

this.isAuthenticated = true

However, I wounder if I still missed something, and how to improve the documentation?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant