Skip to content
This repository has been archived by the owner on Sep 4, 2024. It is now read-only.

(情報共有)Pleromaに接続するときの認証キーに不要な文字列がついてくる #15

Closed
kaias1jp opened this issue Feb 5, 2019 · 4 comments
Labels
🐛 bug Something isn't working(バグ。期待通りに動かない。)

Comments

@kaias1jp
Copy link
Contributor

kaias1jp commented Feb 5, 2019

pleromaのアカウントを追加するときの認証キーですが、現在のpleromaのAPIは認証キーに「&state=」を付与して返してきます。
この文字列を含めてコピーしてTheDeskに貼り付けようとするとエラーになっているかどうかわからずに再度キー入力画面が表示されます。
再入力になって「&state=」を除いた文字列を貼り付けてもアカウント追加はできません。こうなった場合、再度サーバ名の入力からやり直して、一回目で「&state=」を除いた文字列を貼り付けないとアカウントの追加は成功しません。
Pleromaに接続しない人は少ないかもしれませんが、回避方法として残しておきます。

@cutls
Copy link
Owner

cutls commented Feb 5, 2019

それはどちらかというとTheDesk側の実装ミスです(stateが無い前提の挙動をしてた)。TheDeskの内部をいじらなくてもいい(thedesk.topの問題)ので、すでに修正されています。
stateはアプリ側のパラメーターでサーバー側はいじらずスルーしろというのがOAuthのルールだと思ってたのに勝手に足しちゃった感じですかね…🤔

@kaias1jp
Copy link
Contributor Author

kaias1jp commented Feb 5, 2019

thedesk.topの現在の動作を確認しました。
・pleroma:表示されるキーにstateがつかなくなりました。そのまま貼り付けてOKです。
・mastodon:キーが表示されなくなりました。URLにはstateがついていませんでした。
HTMLのソースを見るとmatchの条件で後ろに「&」が付くケースと付かないケースを両方満たすようになっていないように思いました。
location.search.match(/\?code=(.+)&/)
キャッシュが効いていて古いHTMLを見に行っていますかね?

@kaias1jp
Copy link
Contributor Author

kaias1jp commented Feb 5, 2019

ググって対応できそうなコードを見つけました
location.search.match(/code=(.*?)(&|$)/)
で(1)後ろに&が付かないケースも対応(2)順番入れ替えにも対応 していることを確認しました。

@cutls
Copy link
Owner

cutls commented Feb 5, 2019

書いてくださったコードで対応できました。ありがとうございます。

@cutls cutls closed this as completed Feb 5, 2019
@cutls cutls added the 🐛 bug Something isn't working(バグ。期待通りに動かない。) label Feb 6, 2019
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
🐛 bug Something isn't working(バグ。期待通りに動かない。)
Projects
None yet
Development

No branches or pull requests

2 participants