1

So I am using https://github.com/yahoo/yos-social-php instead of the "php5" version just because they're both frankly a mess and this one was slightly less messy.

The issue is once a user logs in the login expires after an hour of the login. Doesn't matter if the user is actively using the site or not in the interim, they are still forced to re-login once an hour.

Couldn't find any documentation on this, any suggestions would be welcomed.

4

2 に答える 2

5

Yahoo!では無理だと思います。Social SDK - PHP、私たちも 1 年前に同じ git Repo を使用して同様の問題に遭遇しました。使用しています。

その後、 GIGYAを使用しましたが、yahoo認証で魅力的に動作します。あなたにも役立つかどうかを確認してください。

于 2013-09-18T10:37:37.880 に答える
2

公式の Yahoo 開発者ドキュメントでは、実際に「アクセス トークンは有効期限が切れるまで 1 時間使用できます」と確認されています。見る:

http://developer.yahoo.com/oauth/guide/oauth-refreshaccesstoken.html

次に、「継続して使用するために新しいアクセス トークンを取得するには、同じ期限切れのトークンと get_token 呼び出しを使用して、新しいアクセス トークンを提供します」と述べています。この操作を正確に呼び出す方法の詳細な説明もあります。署名自体は次のようになります。

https://api.login.yahoo.com/oauth/v2/get_token?oauth_nonce=ef3a091928d5491624c0ac54d697124422705091
  &oauth_consumer_key=123456891011121314151617181920
  &oauth_signature_method=plaintext
  &oauth_signature=55d4cf6bf417023ce5dcc3b77132fb021cd13b21abcdef%26
  &oauth_version=1.0
  &oauth_token=AJwxz0eyXRa._q0xKlggmMSpQzYjOZyqApyhHybqPzCsDr0-
  &oauth_timestamp=1204762971
  &oauth_session_handle=ALKVBsl8DHR1rsAHSwTmAxYIsIGs3l31syRaA_aaF.RDs.MknmVM4P

現在、多くの OAuth プロバイダーはこのように機能します。Salesforce.com や他の多くの OAuth プロバイダーでも同じ手法を使用して成功しています。

Yahoo ライブラリは本当に古く、php5 バージョンでさえ、過去 3 年間に新しいコミットは見られませんでした。ただし、上記の方法は単純な REST 呼び出しで使用できるため、実際には PHP ライブラリをバイパスすることもできます。

于 2013-09-15T07:07:30.077 に答える