我正在尝试设置需要用户谷歌纵横信息的网络服务,因此我使用Google OAuth获取用户授权内容.
但是,当尝试在Google API控制台中为Web应用程序客户端ID设置重定向URI时,如果我尝试将其设置为"http:// PUBLIC_IP /",则会收到错误消息.
我需要使用非本地用户进行测试(因此无法使用localhost),因此我想知道是否必须拥有Web域才能使用Google的OAuth.如果没有,我该如何解决这个问题?
我正在使用[localhost:8080]使用Google Drive API进行开发.突然,我觉得在我的本地部署沙箱中测试它,它的IP地址为[192.168.1.1:8080].并且根据我在开发人员控制台客户端回调URL中更改了凭据.我正在使用OAuth2WebServerFlow来获取用户同意的刷新令牌.然后将来我使用刷新令牌和OAuth2WebServerFlow来验证用户.但我很惊讶 - 我得到了错误:
我不知道发生了什么或者我该如何解决它.发生了什么,我不明白
我正在尝试使用Socialize在laravel 5中使用facebook登录.
这是我的路线文件代码.
Route::get('fb', function ($facebook = "facebook")
{
$provider = \Socialize::with($facebook);
if (Input::has('code'))
{
$user = $provider->user();
return var_dump($user);
} else {
return $provider->scopes(['public_profile','user_friends'])->redirect();
}
});
Run Code Online (Sandbox Code Playgroud)
登录成功,我得到代码,但get $provider->user()我得到错误的时间.
AbstractProvider.php第161行中的InvalidStateException
我配置Devise使用omniauth与Facebook和Google.它工作正常,Facebook但我遇到了问题Google.
我一次又一次地得到这个错误:
错误 - omniauth:(google_oauth2)身份验证失败!invalid_credentials:OAuth2 :: Error,redirect_uri_mismatch:
{"error":"redirect_uri_mismatch"}
[localhost] [127.0.0.1] [6a9377fe-d0b3-42] RuntimeError - 找不到路径"/ users/auth/google_oauth2/callback"的有效映射:
设计(3.5.2)lib/devise/mapping.rb:49:在`find_by_path!'中
我在Google控制台中尝试了几个URI 但是任何人似乎都没有工作:
的Gemfile
# Social Networks Authentification
gem 'omniauth'
gem 'omniauth-facebook'
gem 'omniauth-google-oauth2'
Run Code Online (Sandbox Code Playgroud)
devise.rb
config.omniauth :facebook, ENV['OAUTH_FACEBOOK_ID'], ENV['OAUTH_FACEBOOK_SECRET'],
scope: 'public_profile', image_size: {height: 1600}, info_fields: 'name, id, first_name, last_name, gender, hometown, cover, email, link' # list of permissions
# Not working, "error" : "redirect_uri_mismatch"
config.omniauth :google_oauth2, ENV['OAUTH_GOOGLE_ID'], ENV['OAUTH_GOOGLE_SECRET']
Run Code Online (Sandbox Code Playgroud)
omniauth_callbacks_controller.rb
def self.provides_callback_for(provider) …Run Code Online (Sandbox Code Playgroud)