jugyo / termtter

moved to https://github.com/termtter/termtter
201 stars 34 forks source link

switchが使えなくなった #129

Closed authorNari closed 13 years ago

authorNari commented 13 years ago

こんにちは。

switchが使えなくなっています。

switch

上記を実行しても、同じアカウントで再度ログインしてしまいます。

コードを覗くとどうやらOAuth対応した際の不具合みたいです。 Termtter::API.setup()でデフォルトのtokenファイルを必ず見てしまうようで、ユーザが変わらないのだと思います。

どのように修正するのがいいのでしょうか。 config.token_fileをユーザ毎に作るというのを思いつきましたが、他に良い案があれば教えて欲しいです。

バグじゃなかったら回避方法を教えてもらえると嬉しいです。

Sixeight commented 13 years ago

バグだと思います。ユーザの切り替えが考慮されていなかったために、そもそも OAuth 対応は1アカウント向けになっています。 複数アカウントを使っている人がマイノリティな証拠ですね…。

Termtter会議2010 の時にちょっとだけパッチ書いてたのですが、結局上手くいかず放置しています。 config.token_file の中に複数ユーザのトークンを置くような実装をしていたのですが、複数の token_file を持つ方法でも良さそうです。

(と言いつつ実は回避方法があれば僕も知りたいです。)

emasaka commented 13 years ago

バグでしょうねー。というか仕様がこんがらがってる感じだと思います。

ついでにその辺の話に繋げてしまうと、config.token_fileとTermtter::CONF_DIR + config.token_file_nameが重複してるのも気になっていました。

あと、今の実装ではユーザー名をtokenで認証した結果から取ってるので、デフォルトのユーザーをどうするかなと。

というあたりで、叩き台の仕様は、こんな(↓)感じでしょうかねぇ。

そのほかの論点としては、tokenファイルが散らばるのを避けて1つのファイルに複数アカウントぶん入れるかどうか、とか。

authorNari commented 13 years ago

コメントありがとうございます。

暇だったのでswitch内で完結するようなパッチを作ってみました。

https://gist.github.com/709419

tokenは複数ファイルになるようにしてます。

ばらけるのがいやな感じかもしれませんが、複数のアカウントといってもせいぜい数個くらいしかないと思われますし、問題ないと考えています。

Sixeight commented 13 years ago

cool

ばらける嫌さよりも、削除や修正の容易さが上まわっていると思います。

emasaka commented 13 years ago

すごい。コードも仕様もすっきりまとまってますねー。さすが。 私のところでも正常動作しました。 というわけで、pushしちゃっていいんじゃないでしょうか <<< ナニサマ

Sixeight commented 13 years ago

authorNari さんの変更を取りこみました。

jugyo commented 13 years ago

反応が遅くなって済みません。 良いと思いますー