GithubHelp home page GithubHelp logo

Comments (8)

waiting-for-dev avatar waiting-for-dev commented on August 17, 2024 3

Edited to fix a typo commented below

For this, you have to rely on the underlying library warden-jwt_auth:

Warden::JWTAuth::UserEncoder.new.encoder.call(user, scope)

from devise-jwt.

zaidhuda avatar zaidhuda commented on August 17, 2024 2

Warden::JWTAuth::UserEncoder.new.call(user, scope) doing this returns the token.

from devise-jwt.

scottrobertson avatar scottrobertson commented on August 17, 2024 1

Edit: Setting it to nil seems to work.

Since this was answered, it seems that the method now requires an aud. Does anyone have any idea how to generate that?

https://github.com/waiting-for-dev/warden-jwt_auth/blob/693f64d04dd1de8c697165ba0ebf7618d32168ec/lib/warden/jwt_auth/user_encoder.rb#L31-L34

from devise-jwt.

waiting-for-dev avatar waiting-for-dev commented on August 17, 2024 1

It is documented in the README:

https://github.com/waiting-for-dev/devise-jwt#aud_header

from devise-jwt.

waiting-for-dev avatar waiting-for-dev commented on August 17, 2024 1

Second argument of #call is devise scope. Probably it's :user. But keep in mind that this library is not intended to provide refresh tokens and that probably you'd be better off with something like OAuth2.

from devise-jwt.

zaidhuda avatar zaidhuda commented on August 17, 2024

There's no Class User found. However, I could find UserEncoder, but trying to invoke call gives undefined method 'call' for Warden::JWTAuth::UserEncoder:Class Did you mean? caller.

from devise-jwt.

waiting-for-dev avatar waiting-for-dev commented on August 17, 2024

Yep, sorry, I made a typo in the example. If everything is clear, I'm going to close this issue. Feel free to reopen if you have any other doubt.

from devise-jwt.

jackpope avatar jackpope commented on August 17, 2024

I am trying to use this solution to create a token refresh endpoint. If users tokens are near expiration, this endpoint will automatically be hit in order to keep them signed in. I am successfully getting back a new token, but when I put that in the Authorization header for the next request it doesn't authenticate.

Endpoint code:

def create
    if user_signed_in?
      json_response({
        token: Warden::JWTAuth::UserEncoder
          .new
          .call(current_user, :users, nil)
          .first
      })
    else
      json_response({
        message: '401 - Unauthorized'
      }, :Unauthorized)
    end
  end

How is a User record associated with a token?

from devise-jwt.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.