Sina の oauth の最初のステップでは、ユーザーがページを開くように誘導され、ユーザーが許可すると URL が Web サイトのルート ディレクトリにリダイレクトされます。
URL には code パラメーターがあり、リンクは XXX.XXX.com/?code=XXXX になります。htmlMode # $locationProvider.html5Mode(false) が使用されていない場合、ルートは XXX.XXX にジャンプします。 com/? コード=XXXX#/
このコードの値を取得する良い方法はありますか ($location.search はこのモードではこの値を取得できないため、現在 $window.location.search を使用しています)。
この XXX.XXX.com/?code=XXXX#/ ?code=XXX を削除する良い方法はありますか (削除しないと、すべてのルート ジャンプ リンクがそこに表示されてしまいます)
上記 2 つの問題に対する私の一時的な解決策は、$window.location.href を置き換えることです。これにより、ページ全体が更新されます (幸いなことに、それはホームページのログインです
それは許容範囲ですが、より高度で角度的な使用法があるべきだと感じます)
http://llovebaimuda.herokuapp.com/#/loginhttp://llovebaimuda.herokuapp.com/#/login URL (例:
phone) を直接入力すると 404 が発生するため、Html5mode は使用されません。ブラウザには http://llovebaimuda.herokuapp.com/phone)会导致404,输入phone と表示されますが、
http://llovebaimuda.herokuapp.com/#/phone虽然浏览器显示http://llovebaimuda.herokuapp.com/phone,但是#/phone と入力します。
URL を友達にコピーすると、#/ が追加されない限り 404 が返されます。角度とバックエンドでこの問題に対する良い解決策はありますか?
Angular で <script></script> をページ内で直接使用する方法はありますか?たとえば、Sina Weibo ログイン コンポーネントはページにロードされます。
次に、DOM に対する Angular の操作をディレクティブ内で実行し、コンパイルしてリンクします。つまり、Sina のログイン JS ウィジェットです。
動作しないか、Angular に特別な処理が必要ですか。
Angular (中国の Sina Weibo、QQ、Douban など) には比較的成熟した再利用可能な OAuth はありません。https://oauth.io/这个木有微博啊
oauth には次の手順が必要です:
1. コードを認証して取得するようにユーザーをガイドします
2. oauth Web サイトへのリクエストを積極的に開始し、access_token
を取得します。
このステップはユーザーに対して透過的である必要があります。ここで、私のアイデアは、ページが authService を使用してページにアクティブにジャンプできるようにすることです。この authService は必要なデータをアクティブに取得し、access_token
とユーザーを $routeScope( に似たローカルストレージはありますか?)バックボーンへ?) の場合、この操作は成功したかどうかに関係なく次のページにジャンプします。これはログインに成功した場合にのみ表示されるページです
阿神2017-05-15 16:51:03
最初の質問に答えましょう:
?code=XXX を削除するには、location.href を使用すると、代わりに window.pushState を使用します。
参考: MDN: ブラウザ履歴を操作する