問題タブ [lightopenid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - openID からデータを取得する
LightOpenID を使用してデータを取得しようとしています。そのまま、以下のコードは機能していますが、行のコメントを外して詳細情報を取得すると、タイムアウトになり、エラーは表示されません。私は何を間違っていますか?
php - https://www.google.com/accounts/o8/idにOpenIDサーバーが見つかりません
興味深いことに、2つの異なるサーバー(a.com、b.com)で同じ.phpスクリプトを使用していて、結果が異なります。これらのサーバーの構成は異なると思います。a.comではSSOプロセスをうまく実行できますが、b.comは「https://www.google.com/accounts/o8/idにOpenIDサーバーが見つかりません」とスローします。
私のphpスクリプトは次のようになります。
b.comでは、行$ openid-> authUrl()が次のエラーをスローします: https://www.google.com/accounts/o8/idにOpenIDサーバーが見つかりません
どのサーバー構成がこの問題を引き起こす可能性がありますか?
php - iosSafariは$_SERVER['HTTP_HOST']から「www」を切り刻んでいます。これはどのように可能ですか
m.domain
の代わりに名前を持つサブドメインに別のモバイルサイトを持っているdomain
:
openidを使用してiOSデバイスにログインしようとすると、Googleからエラーページが表示されますが、デスクトップからサイトを使用した場合は表示されません。
クロームモバイルは大丈夫です、それはただのサファリです。それらのサーバー変数は何があっても同じままだと思いましたか?
誰かがそれを説明できますか?
編集: 文字列を比較したため、openidの承認リクエストに「www」が含まれている必要があることを除いて、エラーの形で出力することは実際にはあまりありません。lightopenidライブラリの「SERVER['HTTP_HOST']」によって設定される「レルム」変数でエラーが発生します。
php - validate()関数はどのようにして偽の認証要求を停止しますか?
ログインコードがリクエストを適切に検証していなかったPHPコードの一部をデバッグしました。私はどういうわけか->validate()関数の使用をスキップし、私のWebサイトテスターの1人がgoogle(下記)から応答を取得して彼の電子メールを管理者の電子メールに変更することで管理者アカウントにログインすることができました。
http://mydomain/login/?openid.ns=http%3A%2F%2Fspecs.openid.net%2Fauth%2F2.0&openid.mode=id_res&openid.op_endpoint=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fud&openid.response_nonce=2013-02-15T03%3A56%3A27ZY153c0JFI0G5wA&openid.return_to=http%3A%2F%2Flocalhost%2Flogin%2F&openid.assoc_handle=AMlYA9UI33WW3XfuQGjITXSgB0a0x8nsqD91iuWK9mdvwyBm4EEbk08g&openid.signed=op_endpoint%2Cclaimed_id%2Cidentity%2Creturn_to%2Cresponse_nonce%2Cassoc_handle%2Cns.ext1%2Cext1.mode%2Cext1.type.namePerson_first%2Cext1.value.namePerson_first%2Cext1.type.namePerson_last%2Cext1.value.namePerson_last%2Cext1.type.contact_email%2Cext1.value.contact_email&openid.sig=laAMatkmFjOPrKPsmaIEg%3D&openid.identity=https3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%3DAawnUG6Mr7_ynO1mN-fThr9wbOo&openid.claimed_id=https%3A%2F%2Fwww.google.com%2Faccounts%2Fo8%2Fid%3Fid%OawnUG6Mr7_ymuB1mN-fTFhr9wbOo&openid.ns.ext1=http%3A%2F%2Fopenid.net%2Fsrv%2Fax%2F1.0&openid.ext1.mode=fetch_response&openid.ext1.type.namePerson_first=http%3A%2F%2Faxschema.org%2FnamePerson%2Ffirst&openid.ext1.value.namePerson_first=T&openid.ext1.type.namePerson_last=http%3A%2F%2Faxschema.org%2FnamePerson%2Flast&openid.ext1.value.namePerson_last=M&openid.ext1.type.contact_email=http%3A%2F%2Faxschema.org%2Fcontact%2Femail&openid.ext1.value.contact_email=**myemail%email.com**
これにより、リクエストの送信元であるvalidate()関数を使用して、open idがどのように検証され、適切なソースに返送され、openidサーバーから直接返送されないものをキャッチするかについてかなり興味がありましたか?sigまたはidenitiy変数は、ある種の公開/秘密鍵システムとして使用されていますか?
誰かが私がそれを理解するのを手伝ってくれるなら、それはクールだろう。
どうもありがとう
php - OpenID/LightOpenID: validate() の失敗
LightOpenID ライブラリを使用して、OpenID 経由でユーザーを登録しようとしています。validate() が常に失敗することを除いて、Google認証ではすべてがうまく機能しているようです。私は $openid をダンプしていますが、すべてのデータは正しいように見えますが、validate() は失敗します。
この質問LightOpenID validate() fail on Google Appsを見てきましたが、応答がサーバーが見つからないということではなく、何らかの理由でサーバーが is_valid: false で応答すると判断したため、問題は少し異なります。これはなぜでしょうか?
これが私がそれについて行っている方法です(Laravelで):
事前に感謝します。
php - 単一ファイル PHP ギャラリーの LightOpenID ログイン - 画像にアクセスできない
私は単一ファイル PHP ギャラリーと OpenID プロバイダーを持っています。ギャラリーは登録ユーザーのみがアクセスできるようにする必要があるため、LightOpenID を介してギャラリーにログインを追加しようとしました。さらに、ログイン状態を維持するために Cookie を設定する必要があります。
結論は
- index.php を開く - OpenID を要求する - FINE
- OpenIDを入力してCookieを設定する - FINE
- ギャラリーを表示: 画像はありません!
画像が表示されません... スクリプトは CSS を読み込みますが、画像は読み込みません。ソースは次のとおりです。
index.php
login.php
スクリプトには Cookie がないため、サーバーは SFPG スクリプトが画像にアクセスすることを許可していないと思います。
よろしくお願いいたします。
単一ファイル PHP ギャラリー: http://sye.dk/sfpg/
php - これはopenIdを使用する方法ですか?
独自のログイン関数を作成したくないので、代わりに openId を使用したいと思います。ライブラリ lightopenid が見つかりました。google-example ファイルをいくつか変更すると、次のようになります。
だから私はそこに $_SESSION のものを追加しました...今度は、次のように、保護された各ページの上部にいくつかのコードを使用できると思います:
私はこれが正しい方法で行われ、すべてが安全であることなどを望んでいます。あなたはこのようにしましたか、それとも私は何か間違ったことをしていますか? 代わりにクッキーを使用するかもしれません...
php - openId のユーザー情報が空です。なぜですか?
lightOpenId のこの変更された google-example 接続コードがあります。
私の問題は、 $openid->required が何も返さないことです。配列自体には、空の「連絡先/電子メール」フィールドさえ含まれていません。ここで何が間違っていますか?
php - ユーザーがすでに Google Apps にログインしている場合、ウェブ アプリでの自動ログイン
Web サイトへの自動ログインを実装する最良の方法を知りたいです。自動とは、次のことを意味します。
すでに Google にサインインしています。ここで、自分の Web サイトとそのログイン ページに移動します。Google でログインするためのリンクをクリックする代わりに、既に Google にログインしていることを Web アプリに検出させ、ログイン ページ全体をバイパスさせたいと考えています。
PHP と lightopenid を使用してこれを行うにはどうすればよいでしょうか?