gpt4 book ai didi

ruby-on-rails - Oauth2 提供者(Doorkeeper?)是用于登录的 Oauth2 使用者(Devise+OmniAuth)

转载 作者:行者123 更新时间:2023-12-04 23:49:23 25 4
gpt4 key购买 nike

Oauth2 快把我逼疯了。

目前,我的 Rails 应用程序通过 Facebook 和其他 Oauth2 提供商对用户进行身份验证,这要归功于 Devise 和 OmniAuth 的美妙之处。用户无法使用登录名和密码登录。

但由于我的应用程序主要是一个 API,我也希望它充当 Oauth2 提供者,以保护数据。

因此,用户使用 Facebook 登录 -> 我的应用程序获取访问 token ,然后 -> 为用户提供新的访问 token 以访问我的 API -> 我的 AngularJS 应用程序(或任何其他应用程序)使用此 token 访问我的 API不知道 Facebook 或 Google 访问 token 。
看起来我需要使用自定义提供程序将 Oauth2 token 转发给客户端。

我发现了 doorkeeper gem...但我不明白如何用 Devise & Omniauth 来表达它。

我在这里找到了许多部分答案,但不是完整的。

我将不胜感激任何帮助、好的教程或更完整的答案。

最佳答案

这是一个简单的教程,可以帮助您入门。感谢安德里亚!
1.服务器应用(设备+门卫)
http://dev.mikamai.com/post/110722727899/oauth2-on-rails
2. 客户端应用(Ominauth-oauth2)
http://dev.mikamai.com/post/112508735689/oauth2-on-rails-the-client-application
附言小勘误!
1. 当您从服务器应用程序为客户端应用程序生成 APP_ID 和 SECRET_ID 时 - 使用 http://localhost:3000/oauth/applications/new - 输入回调网址 http://localhost:3001/auth/doorkeeper/callback或者,如果您在错误后看到此信息,请返回 http://localhost:3000/oauth/applications/并编辑回调网址。我们不能用 http://localhost:3001/doorkeeper/callback因为这不是教程在客户端应用程序中使用的路径。
2. 在客户端应用程序中包含如下回调 Action 定义并将 to_json 方法更改为 as_json。

../oauth-client/app/controllers/application_controller.rb

class ApplicationController < ActionController::Base
# Prevent CSRF attacks by raising an exception.
# For APIs, you may want to use :null_session instead.
protect_from_forgery with: :exception
def authentication_callback
auth = request.env['omniauth.auth']
render json: auth.as_json
end

end

干杯!

关于ruby-on-rails - Oauth2 提供者(Doorkeeper?)是用于登录的 Oauth2 使用者(Devise+OmniAuth),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26386072/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com