如何从Facebook javascript SDK获得授权代码
How to get authorization code from Facebook javascript SDK
我有设计/omniauth设置,现在我想使用Facebook javascript SDK登录/请求权限,然后将它们路由到我的omniauth回调控制器。
这是我写的(coffeescript)
$('#fb-connect').live 'click', ->
FB.login ((response) ->
if response.authResponse
window.location = "/users/auth/facebook/callback?code=" + response.authResponse.signedRequest
else
console.log "User cancelled login or did not fully authorize."
), scope: "email, offline_access"
false
但是我得到一个Invalid verification code format
错误。我假设这是因为代码参数期望签名请求以外的东西?
所以看起来我需要传入授权码,但我找不到方法。直接url示例表明,您可以指定response_type=code来获得授权代码,但我不知道如何使用FB.api。什么好主意吗?
http://www.facebook.com/dialog/oauth/?
scope=email,user_birthday&
client_id=123050457758183&
redirect_uri=http://www.example.com/response&
response_type=code
只是为了防止其他人偶然发现这个问题,你不需要在使用设计/omniauth时向控制器传递任何参数…
$('#fb-connect').live 'click', ->
FB.login ((response) ->
if response.authResponse
window.location = "/users/auth/facebook/callback
else
console.log "User cancelled login or did not fully authorize."
), scope: "email, offline_access"
false
编辑如果使用较小的版本或避免当参数和代码都缺失时抛出的异常,下面的内联js与onclick一起工作。
<script>
function fb_authorise(){
FB.login(function(response) {
if(response.authResponse) {
window.location = "/users/auth/facebook/callback?signed_request=<%= params[:signed_request]%>"
}
}, {scope: "email, offline_access"});
};
</script>
回答你最初的问题你使用了signed_request参数然后在URL中添加code= not signed_request
使用客户端认证,您不需要使用'code'。这种反应。您拥有的authResponse将已经包含access_token。FB.login()已经为您完成了所有这些。你有"窗口"。Location =…",用户登录。
检查认证文档-确保您正在阅读客户端部分。还可以查看fb.login
相关文章:
- 从桌面读取python文件时高亮显示代码
- 如何将函数包装在函数中以避免代码重复
- 通过单击表单中的按钮,在代码生成中使用javascript生成字母数字代码
- 货币代码为欧元-金额的格式不应包含小数
- Regex代码只允许一个空格
- 如何将屏幕分辨率乘以 80%,然后在代码中使用
- 从var向代码隐藏函数传递值
- 如何动态插入jquery代码
- 如何在php变量中嵌入JQuery代码
- 代码不会验证
- 为什么我的解析云代码请求'未经授权'
- (“NetworkError:401未经授权)从JavaScript调用代码隐藏方法
- 谷歌'的用户令牌和授权代码
- adal.js是否支持授权代码授予流
- { [FacebookTokenError:此授权代码已被使用
- 使用我自己的服务器解析云代码返回“未经授权”
- 通过HTTP-Safe发送Google+Hybrid服务器端流一次性授权代码
- 如何从Facebook javascript SDK获得授权代码
- Google OAuth -使用Javascript前端和服务器后端(授权代码流)进行身份验证
- 添加SSL授权javascript代码在Magento一页结帐页