首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React + Passport.js

React + Passport.js
EN

Stack Overflow用户
提问于 2018-01-21 17:35:15
回答 1查看 4.3K关注 0票数 1

TL;博士,我正在制作一个MERN应用程序,想要访问护照用户的反应。多么?

我试着做一个简单的要做的应用程序与MERN栈,不能让用户下载。我在前端使用了一个用于快速api的代理。我想从React中获取req.user对象,这样我就可以根据用户是否登录来更新导航条。当我发布到/api/login时,我可以从api路由记录用户对象。

回应登入表格:

代码语言:javascript
复制
class Login extends Component {
//..
  async login(event) {
    event.preventDefault();
    await api.login({
      username: this.state.username,
      password: this.state.password
    });
    this.setState({
      username: '',
      password: ''
    });
  }
//..
}

Axios:

代码语言:javascript
复制
export async function login({username, password}) {
  axios.post('/api/login', {username, password});
}

服务器:

代码语言:javascript
复制
router.post('/login', passport.authenticate('local'), helpers.login);

exports.login = (req, res) => {
  res.json({ message: 'You have been logged in!' });
};

通过这个exports.login函数,我可以console.log(req.user),但是当我试图从任何其他路由访问用户时,它是未定义的。

我想做的是:

反应:

代码语言:javascript
复制
class App extends Component {
//..
  componentDidMount() {
    this.isLoggedIn();
  }

  componentDidUpdate() {
    this.isLoggedIn();
  }

  async isLoggedIn() {
    const user = await api.isLoggedIn(); 
  }
//..
}

它将发出返回用户对象的请求。

我有点理解代理是如何阻止的,会话是如何工作的,但是还没有点击。希望有人能帮我。

编辑所以..。问题就这样消失了。如果有什么东西又坏了我会更新的。

EN

回答 1

Stack Overflow用户

发布于 2018-01-21 18:10:09

可能是重复的这里,但是要查看@Molda所接受的答案,有一个指向Github储存库的链接,它给出了一个很好的例子,说明了如何在客户机上处理身份验证。您必须将一些令牌身份验证更改为登录时从服务器返回的用户。

基本上,您需要将用户存储在客户端的某个位置,比如浏览器、本地存储空间。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48369725

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档