deprecated icon indicating copy to clipboard operation
deprecated copied to clipboard

Token based Authentication with Ream

Open ansarizafar opened this issue 8 years ago • 9 comments

How token based authentication can be implemented with Ream. Is there any example available?

ansarizafar avatar Apr 21 '17 13:04 ansarizafar

I guess you mean custom server? If you're using express you can use express-jwt, no example for now.

egoist avatar Apr 21 '17 13:04 egoist

I am using express-jwt and express session to store token in a cookie. How can I set axios header, authorize routes and access token in vue components. Nuxt uses middle ware to set axios header like this

import axios from 'axios'

export default function({isServer, req}) {
  if (isServer) {
    axios.defaults.headers.common.cookie = req.headers.cookie
  }
}

and then store token in store

nuxtServerInit ({ commit }, { req }) {
  if (req.session && req.session.authUser) {
    commit('SET_USER', req.session.authUser)
  }
}

ansarizafar avatar Apr 21 '17 13:04 ansarizafar

@egoist An authentication/route authorization example with express-jwt and custom expressjs server would be very useful for developers new to Ream.

ansarizafar avatar Apr 22 '17 06:04 ansarizafar

@ansarizafar you can do this like in all other vuejs apps with or without ream

you cann follow this: https://github.com/auth0-blog/vue-jwt-authentication this will give you the idea but dont forget to use bcrypt to save the password on serverside they dont show this part

cannap avatar Apr 22 '17 11:04 cannap

I've already explained that to him, but he keeps asking: https://github.com/ream/ream/issues/23#issuecomment-296352024

I'm guessing he hasn't gone through any tutorials yet.

jazoom avatar Apr 23 '17 01:04 jazoom

I am using Token based authentication in my projects from last 3 years. @cannap the tutorial you mentioned is about client side. If routes/pages are rendered on the server then you can't get token from localstorage as there is no localstorage available on the server. See how it can be done with Nuxt https://nuxtjs.org/examples/auth-routes

ansarizafar avatar Apr 23 '17 01:04 ansarizafar

Since you've been doing it for 3 years, how do you normally get the token to the server? Just add it to a header, or to the body, or in the query string when you make the request.

jazoom avatar Apr 23 '17 01:04 jazoom

@egoist Could you please suggest a solution, especially for those who don't understand how SSR works.

ansarizafar avatar Apr 23 '17 01:04 ansarizafar

I added a simple auth example: https://github.com/ream/ream/tree/master/examples/with-auth

This does not include an API implementation but only a client workflow.

Basically you only need to check if it's a valid user in entry file's middleware method or component's getInitialData method:

https://github.com/ream/ream/blob/76b13d34aa9b0dd6da35df62dd990639f32b66a8/examples/with-auth/index.js#L28-L44

egoist avatar May 29 '18 14:05 egoist