这是我的应用
当我单击按钮Sign in with Google
时,它会显示一个Google登录弹出窗口并登录我,并在该按钮旁边显示电子邮件,如下所示。
但是,当我刷新页面时,它会将我注销。
刷新后甚至不再定义Meteor.user()
。
如何拥有持久的登录系统。
这是我的主要组成部分:
import React from 'react';
import { Meteor } from 'meteor/meteor';
export default class NavBar extends React.Component {
constructor(props){
super(props);
this.state = {
email: ''
}
}
componentDidMount(){
console.log(Meteor.user());
if(Meteor.user()){
this.setState({
email: Meteor.user().services.google.email
});
}
}
login(){
Meteor.loginWithGoogle({
requestPermissions: ['email']
}, (err) => {
if(err){
console.log("Error", err);
}else{
this.setState({
email: Meteor.user().services.google.email
});
}
});
}
render(){
return (
<div>
<h1>Site Title</h1>
{ this.state.email ? <h3>Logged in as {this.state.email}</h3> : null}
<button onClick={this.login.bind(this)}>Sign in with Google</button>
</div>
);
}
}
这是我的/server/main.js
文件:
import { Meteor } from 'meteor/meteor';
Meteor.startup(() => {
ServiceConfiguration.configurations.upsert(
{ service: 'google'},
{
$set: {
clientId: "MY-CLIENT-ID",
loginStyle: 'popup',
secret: "MY-SECRET"
}
});
});