javascript - Angular/Node 验证用户

标签 javascript node.js angular ionic-framework

我有一个正在运行的 Node 服务器。并将帖子发送到 Twitter 时间轴,我有一个 Ionic/Angular 应用程序,它使用 Node 服务器并发送消息。

但是,问题是在 Node 服务器中,我的用户 Twitter 帐户信息是硬编码的,我想知道如何发送从 Twitter 连接插件获得的用户详细信息。

这是我的 Node 服务器

const express = require('express');
const Twitter = require('twit');

const app = express();
const client = new Twitter({
  consumer_key:         '...',
  consumer_secret:      '...',
  access_token:         '...',
  access_token_secret:  '...',
});


app.use(require('cors')());
app.use(require('body-parser').json());

app.post('/post_tweet', (req, res) => {

  tweet = req.body;

  client
    .post(`statuses/update`, tweet)
    .then(tweeting => {
      console.log(tweeting);

      res.send(tweeting);
    })

   .catch(error => {
    res.send(error);
  });


});

app.listen(3000, () => console.log('Server running'));

我的 Angular/ ionic 应用程序中的 twitter 服务
export class TwitterserviceService {
  api_url = 'http://localhost:3000';

  constructor(private http: HttpClient) { } 

  tweet(tweetdata: string) {
    return this.http.post<any>(`${this.api_url}/post_tweet/`, {status: tweetdata})
        .pipe(map(tweet => {

            alert("tweet posted")

            return tweet;
        }));
}
}


这是我向 Node 服务器发送推文的 Angular 代码
sendTweet() {  
  this.api.tweet('sent from phone')
            .pipe(first())
            .subscribe(
                data => {
                    console.log('yes')
                },
                error => {
                  'failed'
                });
}

连接插件
twitterLogin() {
    this.twitter.login().then((res: any) => {
      localStorage.setItem('twitterLogin', "true");
      this.firebaseService.twitterDetail(this.userId, res);


      this.twitterUser = true;
      if(this.twitterUser == true){
        this.twitter.showUser()
        .then(user => {
          console.log("User: " + user +
                        'username ' + res.username+ " " + user.username);

        });
      }


    }, (err: any) => {
      alert('error: ' + err);
    });
  }

最佳答案

您需要将参数设置为 AuthenticationHeaders在调用将实现 Interceptor 的 API 服务时Angular中的接口(interface).

您可以引用HttpRequest with Interceptor in Angular

关于javascript - Angular/Node 验证用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58962724/

相关文章:

javascript - 有什么方法可以使用 JavaScript 在谷歌浏览器中获取 Windows 用户名?

node.js - 使用 nodejs 将直播流数据包发送到 youtube?

node.js - 使用 libfaketime 时,setTimeout 在 Mac OS 和 Linux 上的行为不同

node.js - 作用域包的 npm 注册表 URL 是什么?

angular - 如何对 dotnet 核心 Angular 模板应用程序进行 docker 化?

javascript - 使用 .toFixed() 仅在需要时显示小数点后 3 位

JavaScript/Show Hide Div > 当单选按钮被选中时

javascript - 在javascript中添加和删除多个元素

javascript - 如何在 Angular2 中将参数传递到楼上

javascript - 如何在 Angular 中创建非链接变量?