[英]How to set password for user's github account?
我將GitHub OAuth集成到我的rails應用程序中,用戶可以通過github帳戶登錄我的rails應用程序,我不想使用第三方的gem,例如OmniAuth,warden-github等。
if !authenticated?
authenticate!
else
access_token = session[:access_token]
scopes = []
begin
auth_result = RestClient.get('https://api.github.com/user',
{:params => {:access_token => access_token},
:accept => :json})
rescue => e
session[:access_token] = nil
return authenticate!
end
auth_result = JSON.parse(auth_result)
user = User.find_by(github_id: auth_result["id"])
if not user
user_attr = {user_name: auth_result["login"],
email: auth_result["email"],
github_id: auth_result["id"],
avatar_url: auth_result["avatar_url"],
location: auth_result["location"],
}
user = User.create!(user_attr)
session[:user_id] = user.id
end
if scopes.include? 'user:email'
auth_result['private_emails'] =
JSON.parse(RestClient.get('https://api.github.com/user/emails',
{:params => {:access_token => access_token},
:accept => :json}))
end
redirect_to user_path(user)
如果用戶通過github帳戶登錄我的應用,我將在數據庫中創建用戶記錄。 我有兩個問題:
我使用SecureRandom
庫生成隨機字符串作為密碼。
http://ruby-doc.org/stdlib-2.1.2/libdoc/securerandom/rdoc/SecureRandom.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.